Доброе утро, пользователи Хабры! Я не собираюсь много рассуждать, но расскажу об основных вещах, которые побудили меня написать эту статью и разработать собственный язык программирования.
Важно то, что я давно занимаюсь планированием и знаю несколько языков программирования. И несмотря на их различия, я могу использовать их в любом языке программирования (даже в Python, мой код иногда запутан и я не понимаю, что я курил, когда писал его). Поскольку мой код резко противоречит всем правилам правильного кода, мне стало интересно, как компилятор и интерпретатор понимают мой проблемный код.
Поэтому я сразу же спросил их, почему? Вы пишете еще один велосипед? Тебе больше нечем заняться?" Я ответил на вопрос. — Это делается для того, чтобы удовлетворить мой интерес, а также для того, чтобы люди вроде меня имели представление о том, как это работает. В настоящее время в теории языков программирования. Посмотрите, что всем в нем нравится — Википедия:.
Язык программирования — это типичная сигнальная система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, редакторских и семантических правил, которые определяют внешний вид программы и действия, выполняемые исполнителем (обычно компьютером) под ее управлением.
Это делает все очевидным и ничего сложного. Мы все знаем, что это такое: набор правил, которые определяют, как должна выглядеть программа и что она должна делать.
О том, что нужно делать.
1. лексический аналитик. Раздел, контролирующий правильность лексической структуры, предоставляемой языком программирования. 2. синтаксический анализатор. Эта секция преобразует понятный человеку код в поток символов, которые в дальнейшем могут быть выполнены или преобразованы в машинный язык. 3.Обычно на этом месте стоит оптимизатор, но я отказываюсь от оптимизатора, потому что наша вещь больше похожа на игру, чем на игру. И вот наши пути расходятся: 3.1. переводчик. В этой секции поток символов, полученный аналитиком, переводится в машинный код. Этот подход используется в компиляторе 3.2. Исполнитель. В этом разделе выполняются команды, описанные в виде потоков символов. Этот подход используется интерпретатором.
Я склонен создавать нечто среднее между интерпретатором и компилятором. То есть, создание языка программирования, который переводится в байткод виртуальной машины, на которой необходимо написать.
Несколько слов о приложении
1. Для реализации транслятора используется язык программирования Python. Почему Python, потому что я знаю его лучше. Кроме того, его типизация, а точнее полное ее отсутствие, уменьшает количество переменных, используемых при написании кода. 2. реализовать виртуальную машину с помощью Python. 3. используйте PyinStaller для сборки проекта. Это позволяет упаковать все в файл, который пока без проблем можно создать для Linux или Windows.
Теперь на практике.
Рекомендуется создать минимальный проект. Как только это сделано, считайте, что проект завершен на своих условиях и не может идти дальше. Для этого определите минимальный синтаксис для вашего языка.
1. имеется одна строка комментариев, начинающаяся с символа кубика (#) и доходящая до конца строки. 2.Существует два типа данных (целое число, строка). 3.Имеется возможность вывода информации на экран. 4. Вы можете вводить цены с клавиатуры.
Принимая во внимание сформулированные вами правила, вы можете написать простую программу на новом языке.
Вот и все. Это простая программа, показывающая, как работает язык, который мы только что придумали. Это конец истории.
В следующей части мы начнем писать свой собственный велосипед, который сможет выполнять вышеприведенный код.
