Что наиболее похожее на нижеописанный язык вы можете вспомнить?
Это похоже на regexp-ы. Основная цель - находить шаблоны. Но работает немного умнее regexp-ов, позволяя создавать переменные, сравнивать их с чем-то и т.п. Для ясности - пример:
Есть тексты: «abcdef», «abcddeeff»
Программа на таком языке:
a, b, c, d, f, $X="OK", $CODE=33
Запятая разделяет операторы, где каждый - это элемент алфавита, либо специальный оператор. Оператор - это задание найти данный элемент алфавита на текущей позиции и перейти на следующую. Если не нашли - вся последовательность считается не найденной.
В конце стоят два специальных оператора - создание двух переменных, присваивание им чего-то. До них дело доходит по вышеописанной логике - если все предыдущие операторы успешно «пройденены» (соотв. символы найдены). Т.е., если текст будет не «abcdef», то переменные $X и $CODE созданы не будут.
Оператор ИЛИ:
(a,b,c) || (w,d,x) || (g,p,o,x,a), $X = 1
Три последовательности через ИЛИ. Делаются три попытки поиска разных последовательностей с одного места в тексте. Три последовательности, разделённые ИЛИ - это один оператор, далее запятая и второй - «$X=1». Смысл - нашли хотябы одну из них - перейдём к выполнению следующего, который создаёт переменную. Не нашли ничего, до $X дело не дойдёт.
Программа посложнее:
a, b ,c, (d, f, $CODE=1, $X=55) || ( d,d,e,e,f,f,$CODE=2, $X=66), ( $CODE == 1, $TEXT="Hello world" ) || ( 2 == $CODE, $TEXT = "mama, mama, chto ya budu delat" )
В зависимости от вида строки, создаётся разная переменная $CODE, и в зависимости от неё, переменная $TEXT имеет разное содержимое. Все программы тут дурацкие, решаются уже имеющимися во вселенной средствами, конечно. Но интересно узнать, существуют ли подобные «языки», работающие по подобной логике - «прохождение» последовательности операторов, зависящее от нахождения их во входной последовательности или от результатов выполнения условных операторов...
Спасибченко!