Привет сегодня мы поговорим о мини языках, что нужно знать что бы сделать свой собственный язык программирования.
ЯП - язык программирования.
Мини языки это минимальные языки программирования, созданные для обучения разработке языков программирования.
Для начала нам нужно определить из чего состоят яп:
Лексический анализ (лексер) — Разбивает исходный код на токены (минимальные значимые единицы: ключевые слова, идентификаторы, операторы, литералы).
Синтаксический анализ (парсер) — Проверяет, соответствует ли последовательность токенов грамматике языка.
Семантический анализ — Проверяет смысловую корректность программы, используя AST и таблицу символов.
Промежуточное представление и оптимизация — Код преобразуется в промежуточное представление (например, байт-код в Java, LLVM IR).
Выбор языков программирования
Вы можете выбрать любой язык программирования, который вам знаком. От этого будет зависеть только скорость работы компилятора.
Советы для новичков
Если вы пишете на интерпретируемом языке, то стоит задуматься о создании компилятора.
Забыть об оптимизации на начальном этапе. Лучше генерировать неэффективный, но рабочий код и реализовать весь язык, прежде чем приступать к оптимизации.
Определить цель языка. Важно точно понимать, для каких задач будет использоваться создаваемый язык.
Использовать существующие инструменты и библиотеки. В зависимости от сложности компилятора и конкретных требований проекта можно применить генераторы синтаксических анализаторов, такие как Bison или ANTLR, или библиотеки для обработки регулярных выражений во время лексического анализа.
Различие Компилятора и Интерпретатора
Компилятор — это программа, которая переводит исходный код, написанный на высокоуровневом языке программирования, в машинный код или промежуточный код.
Основная цель компилятора — перевести высокоуровневый исходный код, понятный человеку, в низкоуровневый машинный код, который может быть исполнен процессором компьютера.
Интерпретатор — это программа, которая выполняет исходный код построчно, без предварительного преобразования его в машинный код.
Интерпретатор анализирует и выполняет каждую строку кода по мере его прочтения. Это позволяет быстро тестировать и отлаживать программы, так как изменения в коде сразу же отражаются в результатах выполнения.
Скорость работы
Откладка кода
Потребление памяти
Необходимость в исходном коде
«Компиляторы: принципы, технологии и инструментарий» - ссылка на скачивание
Это моя первая статья на Pikabu. Буду признателен, если вы оцените её в этом опросе.
Благодарю вас за прочтение этой статьи. Если вы проявите активность, я с радостью поделюсь второй частью, в которой мы создадим наш первый компилятор.
Если вы разработали свой собственный язык, буду признателен, если вы поделитесь им с нами в этой группе. Просто перейдите по ссылке.