Как создать свой язык программирования?
|
|
simtiko | Дата: Четверг, 03 Декабря 2009, 15:00 | Сообщение # 1 |
почти ветеран
Сейчас нет на сайте
| Привет всем.Захотелось написать свой собственный язык программирования, по типу бейсика.Уже есть некоторые наработки по синтаксису языка, и лингвистическому анализатору.Кароче мне понятно как сделать так что бы моя программа читала код и выполняла какие то действия, но как сделать так, что бы программа компилировала мой язык в EXE? Неужели придется делать переводчик моего языка на асму? P.S.Пишу на дельфи.
Сообщение отредактировал simtiko - Четверг, 03 Декабря 2009, 15:01 |
|
| |
Pesets | Дата: Четверг, 03 Декабря 2009, 15:05 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Вообще есть чуть ли не целая наука про то, как написать компилятор... Я в этом не шибко хорошо разбираюсь, тк не сталкивался с подобными задачами, но, думаю, можно сделать, чтобы код на твоем языке переводился в какой-нибудь другой язык, а потом компилировался соответствующим компилятором.
|
|
| |
simtiko | Дата: Четверг, 03 Декабря 2009, 15:10 | Сообщение # 3 |
почти ветеран
Сейчас нет на сайте
| Pesets, То есть так что бы с моего языка переводилось в скажем, паскаль, а потом пользователь вручную компилировал исходник на паскале?
|
|
| |
Vinchensoo | Дата: Четверг, 03 Декабря 2009, 15:11 | Сообщение # 4 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (Pesets) Вообще есть чуть ли не целая наука про то, как написать компилятор... Я в этом не шибко хорошо разбираюсь, тк не сталкивался с подобными задачами, но, думаю, можно сделать, чтобы код на твоем языке переводился в какой-нибудь другой язык, а потом компилировался соответствующим компилятором. сегодня обсуждали в чате. Но, боюсь, подобных знаний у вас нет. Могу дать книгу, как подобное делается на С++ и С шарп. Как альтернатива, сделайте просто анализатор+ехе анализатора. Т.е. в вашей среде разработке пользователь вводит текст, нажимает скомпилировать программу. В наборе имеется стандартный ехе, который является анализатором. При запуске этот ехе читает код с файла, и обрабатывает его. Конечно, это никакой не ЯП, но все-таки механика та же. Написать свой компилятор-задача непосильная, как правило. Ну, или, очень сложная и под силу только опытным программистам.
|
|
| |
TrueIfrit | Дата: Четверг, 03 Декабря 2009, 15:16 | Сообщение # 5 |
Свободный геймдизайнер
Сейчас нет на сайте
| simtiko, чтобы язык работал достаточно быстро нужен АСМ, иначе - только скриптовый.
|
|
| |
Pesets | Дата: Четверг, 03 Декабря 2009, 15:27 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Quote (simtiko) То есть так что бы с моего языка переводилось в скажем, паскаль, а потом пользователь вручную компилировал исходник на паскале? Не вручную, а чтобы твой компилятор запускал паскалевский компилятор. Слышал когда-нибудь про ACM ICPC? Там проверочная система работает подобным образом - сначала компилит нужным компилятором, а потом запускает. Quote (Vinchensoo) При запуске этот ехе читает код с файла, и обрабатывает его. Конечно, это никакой не ЯП, но все-таки механика та же. Многие ЯП так и работают (PHP, Perl, всякие там скриптовые...) Quote (Vinchensoo) Написать свой компилятор-задача непосильная, как правило. Ну, или, очень сложная и под силу только опытным программистам. По-моему достаточно иметь таблицу машинных кодов, знать утсройство PE-формата и в целом уметь программировать. Никаких сверхъестественных знаний тут не надо. Хотя это зависит от сложности языка. Естественно, компилятор С++ одному написать нереально.
|
|
| |
simtiko | Дата: Четверг, 03 Декабря 2009, 15:34 | Сообщение # 7 |
почти ветеран
Сейчас нет на сайте
| Сомневаюсь что те люди которые создавали конструкторы игр, писали для своих программ переводчики на АСМу.Я уверен что они делали как то по другому...
|
|
| |
Vinchensoo | Дата: Четверг, 03 Декабря 2009, 16:01 | Сообщение # 8 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (Pesets) По-моему достаточно иметь таблицу машинных кодов, знать утсройство PE-формата и в целом уметь программировать. Никаких сверхъестественных знаний тут не надо. я имею ввиду для автора данной темы и вообще любителя-программиста. Профессионал, понятное дело, сделает это, ему, если нужно будет, и изучение асм-ра не помеха. Quote (simtiko) Сомневаюсь что те люди которые создавали конструкторы игр, писали для своих программ переводчики на АСМу.Я уверен что они делали как то по другому... Писали. Ты думаешь, создатель Радуги или Гм не знает асм? При желании выучить можно. Quote (Pesets) Многие ЯП так и работают (PHP, Perl, всякие там скриптовые...) Ну, полноценный язык это все-таки немного другое, ежели скриптовый. Скрипт, как правило, исполняется другим языком, они же интерпретируемые все.
|
|
| |
Dark_Falcon | Дата: Четверг, 03 Декабря 2009, 16:10 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| Вот книга, в которой рассказывается, как создать свой язык программирования. Например с помощью CocoR Скачай меня Почитай. С помощью того же CocoR, это не так сложно на самом деле...
|
|
| |
TrueIfrit | Дата: Четверг, 03 Декабря 2009, 17:06 | Сообщение # 10 |
Свободный геймдизайнер
Сейчас нет на сайте
| Quote (Dark_Falcon) Вот книга, в которой рассказывается, как создать свой язык программирования. Например с помощью CocoR Так ты не только про флешбек все знаешь!? Сяп за книгу
|
|
| |
anisimov | Дата: Четверг, 03 Декабря 2009, 21:06 | Сообщение # 11 |
старожил
Сейчас нет на сайте
| Оо. Написание ЯП это целая наука. Есть книги и статьи по этой теме. Например Книга Д.Кеншоу "Пишем компилятор".
http://vkontakte.ru/id56359373 Строю Город, обустраиваю Остров. Присоединяйтесь.
|
|
| |
simtiko | Дата: Четверг, 03 Декабря 2009, 22:08 | Сообщение # 12 |
почти ветеран
Сейчас нет на сайте
| Quote (Vinchensoo) Ты думаешь, создатель Радуги или Гм не знает асм? Думаю что знали.Но врятли его знали те кто делал конструктор на конструкторе. Добавлено (03.12.2009, 22:08) --------------------------------------------- Dark_Falcon, А ты пробовал что то сделать на CocoR?Он кажется только для C#,C++,Java
|
|
| |
Vinchensoo | Дата: Пятница, 04 Декабря 2009, 18:23 | Сообщение # 13 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (simtiko) Думаю что знали.Но врятли его знали те кто делал конструктор на конструкторе. по поводу конструктора на конструкторе, я уже описал примерно, как это делается. Да, это очень не безопасно и так далее. Но файлы можно и кодировать ведь)
|
|
| |
vavilov8 | Дата: Четверг, 18 Августа 2011, 00:58 | Сообщение # 14 |
был не раз
Сейчас нет на сайте
| Скачай журнал Программист я точно не помню какой номер (вроде июнь 2010). Там есть статья как создать свой собственный компилятор.
Сообщение отредактировал vavilov8 - Четверг, 18 Августа 2011, 01:11 |
|
| |
Hlarg | Дата: Понедельник, 22 Августа 2011, 15:17 | Сообщение # 15 |
был не раз
Сейчас нет на сайте
| некрофил
|
|
| |
Starcraft | Дата: Среда, 24 Августа 2011, 15:55 | Сообщение # 16 |
частый гость
Сейчас нет на сайте
| Кто нибудь знает книги по созданию ЯП на асм'е?) надеюсь не зря учу асм)
|
|
| |
Xakep | Дата: Четверг, 05 Января 2012, 21:36 | Сообщение # 17 |
めちゃくちゃちゃ
Сейчас нет на сайте
| на асме наверное геморно будет, хотя бы потому-что кода будет очень много, и сложно ориентироваться будет, но при написание компилятора знания ассемблера явно лишними не будут.
|
|
| |