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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2010, 19:53   #11
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
не понравилось мне.
без нее толку больше.
А вот лично для меня без нее толку было чуть менее чем никакого. Сколько я не пытался создать компилятор, но все попытки обычно заканчивались не больше чем парсингом арифметических выражений.
С этой книгой я смог создать свой компилятор паскале-подобного языка. С такими фишками как константы, переменные, массивы, функции, процедуры, указатели и тд. То есть вполне функциональный язык программирования, а не игрушки типа a = a+12, print a.

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

мне 1-го хватает
но в данный момент у моего компиля есть каркас(нет встроенного компиля асма), то есть переведет все в асм, но далее через FASM например.
сейчас пишу компиль асма, и тогда уже норм

в данный момент плоховато с оптимизацией
хотя вообще такие компиляторы по сути трансляторы(ибо переводят с ЯП, в асм)

язык С++'подобный.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 26.09.2010 в 20:04.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.09.2010, 20:11   #13
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Да, с оптимизацией у меня тоже не особо И да, точно так-же у меня код преобразуется в асм-файл, который потом нужно ассембером компилировать. То-есть тоже у меня транслятор )
Ну ничего, будем допиливать потихоньку. Удачи нам всем )
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 26.09.2010, 20:49   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://ref.x86asm.net какая прелесть
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.09.2010, 20:56   #15
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
http://ref.x86asm.net какая прелесть
Это да, известный ресурс. Но я пишу не под x86 Всмысле пишу-то под x86, а генерирую код не для x86 ассемблера и архитектуры.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 26.09.2010, 21:12   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Отвечаю по порядку:
Цитата:
То что описано в статье это всего лишь детали трансляции в машинно зависимый код. Написание компилятора действительно вполне посильная задача, но начинать нужно не с этого. Начинают с грамматики языка, форм Бэкуса-Наура, далее лексический анализ, синтаксический анализ на соответствие формальным правилам и семантический анализ, ну и затем уже трансляция, которая может быть выполнена в машинно-зависимый код или объектный файл или в байт код или во что либо другое. Для реализации всего вышеизложенного необходимо понимать что такое конечные автоматы, на которых строятся анализаторы и что такое нисходящий или восходящий синтаксический анализ.
То что описано в статье всего лишь начало.
Я не хочу читать книги о компиляторах по одной простой причине - я хочу самостоятельно прийти к тому к чему (возможно) пришли авторы тех книг, именно поэтому я сделал акцент "Что было бы если бы компилятор писал студент, которому совершенно не интересны всякие умные авторы умных книг".
Что получится если иметь фантазию, и уметь искать ответы на свои вопросы.
боже упаси мне конкурировать с кем-то, и боже упаси мне идти по чьей-то протоптанной дорожке
В статье (этой и последующих) я хочу показать что любой даже тот кто не захочет читать много скучной теории сможет без проблем добиться желаемого своим оригинальным путем
Цитата:
но если хочется быстро и без углублений
Неа. Не хочется. Ни быстро ни глубоко. Хочется по своему.
Цитата:
Если человек пишет статью о компиляторе своими руками, хотелось бы чтобы заинтересованный читатель, после прочтения статьи знал с чего начать и куда двигаться,
Вся проблема в том что это целина. Тут двигаться можно куда угодно и поверь мне результат не заставит себя ждать.
Цитата:
и в институтах эта тема - редкость
И тем не менее преподаватели иногда умудряются выпендрится дабы завалить.
Цитата:
что-бы автор на нее ссылался.
Я не ссылаюсь и буду стараться избегать ссылаться на кого бы то ни было из ветеранов этой области. Для них есть Википедия, и прочие порталы. В конце концов литературы по этому делу много.
Цитата:
главное некоторые принципы понимать
Главное - это не бояться пробовать. Подумаешь не по правилам. Подумаешь чего-то не хватает. Подумаешь непривычно... Ерунда и зависть.
Цитата:
И в довершении прямой вопрос - сколько Вы написали компиляторов?
Если вопрос ко мне - ни одного. Потому и заинтересовался этой темой.
В любом случае двигаясь потихоньку у меня получилось написать свой простейший компилятор. И для себя я буду его развивать и постараюсь описать это в журнал. Если статья не нравится как документальная, считайте ее научно-детективной, всего то
Цитата:
Ну ничего, будем допиливать потихоньку.
Вот вот. И я так же решил. А заодно и поделюсь со всеми своими мыслями )

P.S. Не ожидал что моя статья вызовет столько споров... Это Гут.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.09.2010, 21:37   #17
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Если вопрос ко мне - ни одного.
Вопрос был не к Вам, а к Пепел Фенекса, он на него ответил. Вы не обижайтесь, но по вашей статье и так понятно, что компиляторов вы ни писали.
Цитата:
Сообщение от Stilet
В любом случае двигаясь потихоньку у меня получилось написать свой простейший компилятор.
Я тоже так раньше думал, но ничего дальше a = a + b, print a упорно не получалось. Увы, без той самой нудной теории не обойтись. Важно понимать хотя-бы общий принцип, знать понятия токенов и прочее. Кстати, в упомянутой здесь ранее книге теории как таковой мало. Там сразу раз - и практика. Автор начинает от простейшего - первый транслятор у него разбирает вот такую программу:
Код:
1
. Далее - постепенно с увеличением сложности, и все это сразу на примерах.
Цитата:
Сообщение от Stilet
И для себя я буду его развивать и постараюсь описать это в журнал. Если статья не нравится как документальная, считайте ее научно-детективной, всего то
Да никто же ведь не говорит, что статья не нравится. Я по крайней мере таких комментариев в этой теме не помню. Пишите на здоровье, возможно кому-то ваша статья очень поможет. В любом случае удачи. Возможно вы просто гений, и у вас все получится без всяких теорий и прочих наставлений таких зануд вроде меня
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 27.09.2010, 07:55   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Возможно вы просто гений
К счастью нет. Просто специалист по граблям )))) Йог спокоен
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.11.2010, 22:42   #19
oleg.v
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 80
По умолчанию

Здравствуйте, Виталий Белик.
Хочу уточнить, стоит ли ожидать продолжение темы "домашнего компилятора" или вы закончили эту тему на второй части?
oleg.v вне форума Ответить с цитированием
Старый 25.11.2010, 09:40   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
oleg.v
Конечно нет. Просто так получилось что в следующие два выпуска после первой части попали другие статьи. Третью я отправлю в начале декабря в редакцию, поскольку уже две части другой стати ушли в полосу. Четвертая часть сейчас готовится и отрабатыватся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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