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