#дизайн_языка
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются. Хотите улучшить этот вопрос? Update the question so it's on-topic for Stack Overflow на русском. Закрыт 4 года назад. Я далеко не ас, но хочется попробовать написать какой-то простой язык программирования для веба. Никакой мании величия, просто хочется попробовать. Подскажите, с чего можно начать?
Ответы
Ответ 1
Если хотите создавать язык для веб, очевидно будете писать инструмент для интерпретатции/компиляции приложений получающих данные от сервера и выдающих текст в поток стандартного вывода, с тем, чтобы иметь возможность выводить результаты работы программы (веб страницу, например) - здесь могу посоветовать почитать о технологии CGI, написать парочку простых CGI-скриптов (на чем угодно)... Определитесь, какой язык будете создавать - интерпретируемый или компилируемый. Каков будет результат работы "компилятора" (например, Вы можете просто написать транслятор, который будет переводить программу на ВАШЕМ языке в эквивалент на PHP, который и будет в дальнейшем использоваться). Наконец, по синтаксическому анализу, компиляции и прочему - советую (не в первый раз) - Дж. Креншоу, "Давайте создадим компилятор" - для человека, который не собирается заморачиваться теорией формальных языков, обратной польской записью, формами Бэкуса-Наура и пр... пр... пр... - в самый раз. Если хотите серьезно заниматься компиляторами - А.Ахо "Компиляторы: принципы, технологии и инструменты" ("Dragon book")... P.S. Если интересуетесь скриптами (в частности, для игр) и скриптовыми языками, советую также обратить внимание на Alex Varanese "Game Scripting Mastery" - хорошо написана и легко читается (на мой вкус)Ответ 2
Язык программирования — просто его идея, спецификация описывающая синтаксис, семантику и стандартную библиотеку. Реализация языка программирования — программа, которая траслирует программу из исходного текста этого языка в код какого-либо другого выходного языка. При этом выходной язык может быть ассемблер, байткод виртуальной машины или любой другой язык. Реализация языка программировая — программа которая получает самый обычный текст, преобразует и выводит результат преобразования (текстовый или бинарный). Т.е. здесь нет никакой магии. Сам язык программирования придумать можно и не написав ни строчки кода (хотя и чертовски сложно, ведь код можно тестировать). То чего хотите вы — написание реализации языка программирования. Программу которая переводит текст вида print('test') в код Вполне можно считать примитивным вариантом транслятора. Руководствуясь материалами указанными другими участниками можно сделать гораздо более сложный пример.Ответ 3
Рекомендую: Свердлов - "Языки программирования и методы трансляции" В книге приведены исходники компилятора упрощённого варианта Oberon на нескольких языках (Java, C++, Delphi). В качестве таргета реализована своя стековая виртуальная машина на байт-коде(как это делается в Java и .NET) (приведены исходники исполнителя и ассемблера). Книга понравилась именно практической направленностью.Ответ 4
Начните с написания примеров маленьких программок (для начала "Hello World !") на Вашем языке, сопровождаемых человеческими описаниями, что, как и для чего эта программка делает. Входные данные, поток событий и что видим в результате. Потом станет понятно как разбирать синтаксис (и какой наиболее удобный), какие промежуточные формы строить, как исполнять - интерпретировать (и на чем) или во что компилировать.Ответ 5
Изучайте ассемблер. И вообще скриптовые языки появились относительно недавно, поэтому они волей неволей имеют своих предков большой тройки С, Pascal, Java. Так что если создавать что-то новое в скриптовом направлении, то без них вряд ли удастся обойтись. А если хотите создать какой-либо язык, то пишите на Ассемблере - это язык машин - и это уже фаза низкоуровневого программирования. А пхп с и др. - это высокоуровневое программирование. То есть мы написали прогу на Сишке, компилятор перегнал ее на Ассемблер и машина поняла нашу прогу. Так что Ассемблер вам подойдет.Ответ 6
Чтобы написать другой язык программирования надо использовать какой-то язык всеравно. Например возьмем php. mylang.php ".$text.""; } function sql($sql){ $colsql = 0; $sql = mysql_query($sql) or die (mysql_error()); $colsql+; } function text($text){ print $text; } ?> index.php Сделано'.$colsql.' запроса в базу данных.'); ?> ?>
Комментариев нет:
Отправить комментарий