детерминированный автомат



Автор Andrey Terekhov задал вопрос в разделе Другие языки и технологии

Как создать собственный язык программирования? и получил лучший ответ

Ответ от Oleh_Huz'[гуру]
Сначала напиши свою ОС.
Надо начинать с АЛУ, а не сумматора!

Ответ от Александр Шрам[гуру]
нужно сломать систему)

Ответ от Kaiu[гуру]
По твоему вопросу "Как выучить C++ или java?" я могу только советовать в начале познать другие языки, прежде чем создавать собственный. У нас в разработке именно так, что надо сначала проанализировать все известные программы, что есть, их преимущества и недостатки, понять, а нужно ли создавать новое или лучше приобрести готовое.

Ответ от Андрей Панарин[гуру]
У нас в университете была курсовая работа на эту тему. Задача — создать программу-интерпретатор собственного языка программирования.Для начала мы придумали, из каких элементов, простых и сложных, будут состоять программы на нашем языке. Каждый такой элемент Катя зарисовала в виде диаграммы Вирта. Буква, цифра, операция, скобка, выражение, идентификатор, условный оператор, оператор цикла, операторы ввода и вывода, оператор вообще, функция, программа в целом (переменные > функции > начало > набор операторов > конец).Затем в среде C++ Builder Катя сделала окошко, в котором будет писаться код. Просто большое поле Memo, меню и панель инструментов.Что нужно для запуска кода? Компьютер не знает, что с ним делать: для него это всего лишь набор букв и цифр.Для начала нужно преобразовать код в набор лексем — минимальных смысловых единиц языка. Каждое имя переменной, каждое число, каждая строка, каждое ключевое слово, каждая операция, каждая скобка — всё это лексемы.На входе — код.На выходе — список лексем, из которых состоит этот код.Но для того, чтобы лексемы можно было интерпретировать, необходимо понять, как они между собой взаимосвязаны. Для этого я написал процедуру синтаксического анализа. При помощи детерминированных автоматов я научил эту процедуру распознавать в наборах лексем ту или иную структуру из числа описанных нами в виде диаграмм Вирта (см. выше).На входе — список лексем.На выходе — дерево разбора. С корневым элементом «программа» и дочерними элементами — блоками программы. Дерево содержит много уровней, нисходя от программы и крупных ее блоков до отдельных лексем.Затем в соответствии с рекомендациями, озвученными на лекции, Слава создал для хранения команд и данных таблицу, по которой путешествовала интерпретирующая процедура. После каждой операции процедура знала, в какую строчку таблицы ей следует идти дальше. Так и работала.На защите наш интерпретатор сломали, введя отрицательный размер массива. Но остались довольны и поставили «отл.»

Ответ от Metotron[гуру]
Вот тебе 10 статей

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как создать собственный язык программирования?
Конечный автомат на Википедии
Посмотрите статью на википедии про Конечный автомат
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*