Форум: "Начинающим";
Текущий архив: 2013.09.01;
Скачать: [xml.tar.bz2];
ВнизНаписать Компилятор языка Дельфи (Паскаль) Найти похожие ветки
← →
sas9568635 (2012-12-19 19:07) [0]Уважаемые форумчане!
Уже не знаю как и вопрос задать... :-) а также незнаю что искать:-)
вообщем...
Каким образом можно быстро и грамотно «распознавать» текст (код) языка паскаля (дельфи)?... т.е. я было начал писать подобное...
если «program» тогда ...
если «uses» тогда ...
[B]если «Var» тогда... пробелы, табы, вводы - пропустить... «вычислить» переменную.... пробелы, табы, вводы, пропустить... ожидать... либо запятую... либо двоеточие... о господи:-), если еще одна переменная опять повторить - пробелы, табы, вводы пропустить... а предыдущие переменные «помнить» так как их тип будет указан после двоеточия... а также после указания типа возможно еще «=значение» и т. д.
[/B]Вообщем, у меня началось головокружение... :-)
Вот и подумал, может существует какой-то более простой способ «распознавания» этого всего страхомудия!?.. иль кто подскажет что мне необходимо искать в инете для реализации этого?!... а может вообще готовый модуль существует подточенный под распознавание паскаля?!...
← →
KilkennyCat © (2012-12-19 19:10) [1]вообще-то сначала надо пре-компилятор написать
← →
Ega23 © (2012-12-19 19:11) [2]Начать с этого
http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0_%D0%91%D1%8D%D0%BA%D1%83%D1%81%D0%B0_%E2%80%94_%D0%9D%D0%B0%D1%83%D1%80%D0%B0
Потом с этого
http://mif.vspu.ru/books/pascal/syntax.html
Потом скрестить. Потом писать парсер.
← →
брат Птибурдукова (2012-12-19 19:11) [3]это называется "лексический анализатор"
← →
KilkennyCat © (2012-12-19 19:13) [4]вот, почитай: http://msdn.microsoft.com/ru-ru/magazine/cc136756.aspx
← →
O'ShinW © (2012-12-19 19:40) [5]http://sources.codenet.ru/?cid=5
← →
Rouse_ © (2012-12-19 19:59) [6]Брось это дело.
Если есть пробелы в азах - нет смысла копать дальше.
← →
Игорь Шевченко © (2012-12-19 20:57) [7]цель какая ?
← →
Anatoly Podgoretsky © (2012-12-19 21:13) [8]KilkennyCat © (19.12.12 19:10) [1]
Большинство компиляторов Дельфи/Паскаль однопроходные, без ре-компиляции.
← →
bems © (2012-12-20 00:52) [9]
> Большинство компиляторов Дельфи/Паскаль однопроходные, без
> ре-компиляции.
ну и что, что большинство. Реализации компилятора Паскаля в p-code были еще в 70-х, и сам Вирт тоже руку приложил.
А сейчас в Дельфи у нас есть неприятные ограничения вроде того, что компилятор не инлайнит функции если реализация и вызов находятся в одном модуле и вызов находится выше по тексту чем реализация, и я не могу объяснить это ничем кроме стараний сохранить однопроходность. Лучше бы компилятор тратил немного больше времени на работу, но скомпиленый код был бы быстрее
← →
bems © (2012-12-20 01:07) [10]ОП, начни с этого http://ru.wikipedia.org/wiki/%D0%9A%D0%BD%D0%B8%D0%B3%D0%B0_%D0%B4%D1%80%D0%B0%D0%BA%D0%BE%D0%BD%D0%B0_%28%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D1%8B%29
← →
Германн © (2012-12-20 02:04) [11]
> bems © (20.12.12 00:52) [9]
>
>
> > Большинство компиляторов Дельфи/Паскаль однопроходные,
> без
> > ре-компиляции.
>
> ну и что, что большинство. Реализации компилятора Паскаля
> в p-code были еще в 70-х, и сам Вирт тоже руку приложил.
>
> А сейчас в Дельфи у нас есть неприятные ограничения вроде
> того, что компилятор не инлайнит функции если реализация
> и вызов находятся в одном модуле и вызов находится выше
> по тексту чем реализация
И это очень напрягает?
И так ли уж нужен этот inline?
Ты же сам понимаешь, что менять основы - это очень трудо-время/ёмко!
← →
Германн © (2012-12-20 02:05) [12]
> Ты же сам понимаешь, что менять основы - это очень трудо-
> время/ёмко
А ещё это и весьма реальная возможность поиметь новые баги.
← →
bems © (2012-12-20 02:52) [13]До вчерашнего дня не напрягало, а вчера я запустил под профайлером и увидел что куча времени тратиться в функции, которой во время выполнения вообще не должно бы уже существовать. Поменял реализации функций местами и сразу получил прирост процентов в 7-8 (это оч маленькая функция, которая вызывается очень много раз)
А основы они и так собираются менять - компилировать скоро будут в код LLVM
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.09.01;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.003 c