как создать свой язык программирования



Автор Егор Кадомцев задал вопрос в разделе Другие языки и технологии

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

Ответ от Андрей Панарин[гуру]
В КГТУ (Технологическом университете) на третьем курсе у нас был курсовик по этой теме. Задача - создать простую систему программирования, работающую как интерпретатор. Делали мы эту систему в команде из трех человек: Катя, Слава и я. Использовали C++ Builder.
В начале мы подробно разобрали, какие конструкции будут использоваться в нашем языке. Расписали их на бумаге при помощи диаграмм Вирта и получили более-менее ясную картину того, что нам нужно предусмотреть. Этим занималась Катя. Интерфейс программы тоже сделала она.
Затем Слава взялся за реализацию процедуры лексического разбора. Суть: есть программный код (коллекция строк), необходимо его разобрать на элементарные составные элементы - лексемы. К лексемам относятся: переменные, константы (числа и строки), знаки операций, ключевые слова...
На входе - читабельный код. На выходе - список лексем.
После этого я взялся за реализацию синтаксического разбора. Я создал около полусотни детерминированных автоматов для отслеживания любой синтаксической конструкции, для которой Катя составила диаграмму Вирта. Сюда относились арифметические выражения (с учетом приоритетов операций); операторы присвоения, условия, цикла и вызова функции и т. д.
На входе - список лексем. На выходе - синтаксическое дерево, в котором каждая конструкция - это раскрываемый элемент [+], включающий в себя лексемы и более мелкие конструкции.
Наконец мы вместе со Славой работали над выполнением программы по синтаксическому дереву. Для каждой переменной выделяли память и по мере выполнения программы меняли их значения. Там был какой-то хитрый принцип перехода по программе, которого я сейчас уже не припомню в точности: вместе с имеющимися операциями мы хранили все инструкции из дерева и знали наперед, куда нам следует переходить в том или ином случае.
Получилось здорово. Система поддерживала основные арифметические операции, работу со строками, ввод и вывод, функции и массивы. Для примера мы написали программу, решающую квадратное уравнение (корень из D считали подбором).
На защите нашу программу слегка "сломали", указав некорректный размер массива. Но остались довольны. Отл. 🙂

Ответ от Владик Балябин[гуру]
Для начала, теперь забудь все те знания, полученные тобой, входе изучения тобой, языков программирования С++, Java, и т. п.!..

Ответ от Михайл Михайлович[активный]
#define
или
typedef

Ответ от Ray Hay[гуру]
Вопрос хороший.. И очень распространёный. Но даже если Вы и выучили эти языки и при этом спрашиваете как всё-же создать свой язык программирования, то я могу сделать только один вывод - у Вас нет опыта работы с этими языками и с технологиями, использующими эти самые языки..
Если была бы практика, Вы бы поняли, что изобретать свой велосипед на тему "Мой ОО язык программирования" , уж очень неразумная и трудоёмкая задача. Если иметь ввиду что Вы хотите чтоб Ваш язык как минимум не сильно отставал от уже существующих.
Но подобную тему проходят во многих Вузах, правда в общеобразовательных целях. Вам для этого понадобится Ассемблер либо С++. Но со вторым будут дополнительные проблемы.
Статей в нете много. Но это пустая трата времени.
Если Вы Java выучите хотябы процентов на 80 то поймёте что Вам не нужен собствственный язык пограммирования )

Ответ от -/Toghrul/-[новичек]
если мозг способин на етого - ответу найдетса сам

Ответ от Ирина В[гуру]
Егор, все таки: язык, библиотеку, интерпретатор/компилятор, или IDE? Это 4 больших разницы. Если Вы, как говорите, "выучили языки программирования: С, С++, Java, HTML&CSS&PHP, JavaScript", то должны ЭТО понимать.
Тоже делала курсовик с интерпретатором, интересно, и не очень сложно. Компилятор сложней на порядок, полное IDE еще сложней.
А свой язык это абсолютно другое! Для начала, надо определить требования к языку, потом его объекты, и операции, потом синтаксис, и все это должно решать определенный класс задач, и должно быть удобно для программиста, человека! Только потом делать реализацию, а можно не делать: удачный язык это уже труд жизни!

Ответ от Ниндзянутый[гуру]
Надо таким родится, но увы ты таким не родился.

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

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

Имя*

E-mail:*

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