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