Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Обсуждение статей
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2010, 05:30   #1
Pblog
Бот
Администратор
 
Регистрация: 27.05.2007
Сообщений: 182
По умолчанию статья - Компилятор домашнего приготовления. Часть 1

Компилятор домашнего приготовления. Часть 1

Почему мне пришла в голову идея разработать собственный компилятор? Однажды мне на глаза попалась книга, где описывались примеры проектирования в AutoCAD на встроенном в него языке AutoLISP. Я захотел c ними разобраться, но прежде меня заинтересовал сам ЛИСП. “Неплохо бы поближе познакомиться с ним”, – подумал я и начал подыскивать литературу и среду разработки. [...]
Pblog вне форума Ответить с цитированием
Старый 24.09.2010, 13:04   #2
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Ну какой-же это компилятор? Это ... не знаю даже что это, но это не компилятор. Это программа, создающая exe-шники которые выводят любую строку.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 24.09.2010, 13:19   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В конечном примере был описан генератор MZ файлов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.09.2010, 21:24   #4
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от Pblog Посмотреть сообщение
Почему мне пришла в голову идея разработать собственный компилятор? Однажды мне на глаза попалась книга, где описывались примеры проектирования в AutoCAD на встроенном в него языке AutoLISP. Я захотел c ними разобраться, но прежде меня заинтересовал сам ЛИСП. “Неплохо бы поближе познакомиться с ним”, – подумал я и начал подыскивать литературу и среду разработки. [...]
Не факт что в AutoCAD встроен компилятор, скорее это интерпретатор, впрочем не важно. То что описано в статье это всего лишь детали трансляции в машинно зависимый код. Написание компилятора действительно вполне посильная задача, но начинать нужно не с этого. Начинают с грамматики языка, форм Бэкуса-Наура, далее лексический анализ, синтаксический анализ на соответствие формальным правилам и семантический анализ, ну и затем уже трансляция, которая может быть выполнена в машинно-зависимый код или объектный файл или в байт код или во что либо другое. Для реализации всего вышеизложенного необходимо понимать что такое конечные автоматы, на которых строятся анализаторы и что такое нисходящий или восходящий синтаксический анализ.
Rik вне форума Ответить с цитированием
Старый 25.09.2010, 21:39   #5
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Все так, но если хочется быстро и без углублений в конечные автоматы и прочие - рекомендую отличный набор статей Д. Креншоу - Давайте создадим компилятор! (Jack W. Crenshaw - Let's Build a Compiler). С помощью данной книги я таки осилил свой первый в жизни компилятор.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 25.09.2010, 21:57   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

все это слова на публику, Rik вас это тоже касается ...пишите статью про свой первый компилятор и велкам в наш журнал, а уж критики найдутся.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 25.09.2010, 23:28   #7
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
все это слова на публику, Rik вас это тоже касается ...пишите статью про свой первый компилятор и велкам в наш журнал, а уж критики найдутся.
Я всего лишь написал с чего желательно начать. Т.к. кто хочет заниматься этой темой, не знают с чего начать и куда двигаться(и в институтах эта тема - редкость). Я первую попытку сделал много-много лет назад, естественно безрезультатно, потом ещё несколько раз... Я не знал с чего начать, у меня на это несколько лет ушло, пока не попались лекции Вирта. Если человек пишет статью о компиляторе своими руками, хотелось бы чтобы заинтересованный читатель, после прочтения статьи знал с чего начать и куда двигаться, возможно ему это съкономит много времени... Если бы мне попала эта статья несколько лет назад, когда я начинал изучение темы, она бы мне не помогла...
Tronix ссылается на книгу Креншоу - Давайте создадим компилятор!. Очень хорошая книга, в ней всё есть о чем я писал...

Последний раз редактировалось Rik; 25.09.2010 в 23:47.
Rik вне форума Ответить с цитированием
Старый 25.09.2010, 23:35   #8
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Rik Посмотреть сообщение
Автор ссылается на книгу Креншоу - Давайте создадим компилятор!. Очень хорошая книга, в ней всё есть о чем я писал...
Что-то я не заметил, что-бы автор на нее ссылался.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 25.09.2010, 23:42   #9
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от Tronix Посмотреть сообщение
Что-то я не заметил, что-бы автор на нее ссылался.
Простите меня, косоглазие...
Rik вне форума Ответить с цитированием
Старый 26.09.2010, 19:31   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
рекомендую отличный набор статей Д. Креншоу - Давайте создадим компилятор!
не понравилось мне.
без нее толку больше.
Цитата:
Я всего лишь написал с чего желательно начать.
да можно и без них начать, главное некоторые принципы понимать(что есть компилятор)
далее можно ориентироватся на существующий язык(то есть конструкции и тд)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
статья - Разработчик интерфейс пользователи. Часть 2 Pblog Обсуждение статей 0 21.09.2010 23:10
статья - Введение в Scheme. Часть 2. Pblog Обсуждение статей 0 19.08.2010 14:50
статья - Введение в Sсheme. Часть 1 Pblog Обсуждение статей 0 01.07.2010 22:00
статья - Введение в Sсheme. Часть 1 Pblog Обсуждение статей 0 01.07.2010 00:40
статья - Разработка ресурса для журнала. Часть 1 Pblog Обсуждение статей 0 23.06.2010 05:13