Автор Егор Кадомцев задал вопрос в разделе Другие языки и технологии
Как создать свой язык программирования ? и получил лучший ответ
Ответ от Андрей Панарин[гуру]
В КГТУ (Технологическом университете) на третьем курсе у нас был курсовик по этой теме. Задача - создать простую систему программирования, работающую как интерпретатор. Делали мы эту систему в команде из трех человек: Катя, Слава и я. Использовали C++ Builder.
В начале мы подробно разобрали, какие конструкции будут использоваться в нашем языке. Расписали их на бумаге при помощи диаграмм Вирта и получили более-менее ясную картину того, что нам нужно предусмотреть. Этим занималась Катя. Интерфейс программы тоже сделала она.
Затем Слава взялся за реализацию процедуры лексического разбора. Суть: есть программный код (коллекция строк), необходимо его разобрать на элементарные составные элементы - лексемы. К лексемам относятся: переменные, константы (числа и строки), знаки операций, ключевые слова...
На входе - читабельный код. На выходе - список лексем.
После этого я взялся за реализацию синтаксического разбора. Я создал около полусотни детерминированных автоматов для отслеживания любой синтаксической конструкции, для которой Катя составила диаграмму Вирта. Сюда относились арифметические выражения (с учетом приоритетов операций); операторы присвоения, условия, цикла и вызова функции и т. д.
На входе - список лексем. На выходе - синтаксическое дерево, в котором каждая конструкция - это раскрываемый элемент [+], включающий в себя лексемы и более мелкие конструкции.
Наконец мы вместе со Славой работали над выполнением программы по синтаксическому дереву. Для каждой переменной выделяли память и по мере выполнения программы меняли их значения. Там был какой-то хитрый принцип перехода по программе, которого я сейчас уже не припомню в точности: вместе с имеющимися операциями мы хранили все инструкции из дерева и знали наперед, куда нам следует переходить в том или ином случае.
Получилось здорово. Система поддерживала основные арифметические операции, работу со строками, ввод и вывод, функции и массивы. Для примера мы написали программу, решающую квадратное уравнение (корень из D считали подбором).
На защите нашу программу слегка "сломали", указав некорректный размер массива. Но остались довольны. Отл. 🙂
Для начала, теперь забудь все те знания, полученные тобой, входе изучения тобой, языков программирования С++, Java, и т. п.!..
#define
или
typedef
Вопрос хороший.. И очень распространёный. Но даже если Вы и выучили эти языки и при этом спрашиваете как всё-же создать свой язык программирования, то я могу сделать только один вывод - у Вас нет опыта работы с этими языками и с технологиями, использующими эти самые языки..
Если была бы практика, Вы бы поняли, что изобретать свой велосипед на тему "Мой ОО язык программирования" , уж очень неразумная и трудоёмкая задача. Если иметь ввиду что Вы хотите чтоб Ваш язык как минимум не сильно отставал от уже существующих.
Но подобную тему проходят во многих Вузах, правда в общеобразовательных целях. Вам для этого понадобится Ассемблер либо С++. Но со вторым будут дополнительные проблемы.
Статей в нете много. Но это пустая трата времени.
Если Вы Java выучите хотябы процентов на 80 то поймёте что Вам не нужен собствственный язык пограммирования )
если мозг способин на етого - ответу найдетса сам
Егор, все таки: язык, библиотеку, интерпретатор/компилятор, или IDE? Это 4 больших разницы. Если Вы, как говорите, "выучили языки программирования: С, С++, Java, HTML&CSS&PHP, JavaScript", то должны ЭТО понимать.
Тоже делала курсовик с интерпретатором, интересно, и не очень сложно. Компилятор сложней на порядок, полное IDE еще сложней.
А свой язык это абсолютно другое! Для начала, надо определить требования к языку, потом его объекты, и операции, потом синтаксис, и все это должно решать определенный класс задач, и должно быть удобно для программиста, человека! Только потом делать реализацию, а можно не делать: удачный язык это уже труд жизни!
Надо таким родится, но увы ты таким не родился.