Войти
ПрограммированиеФорумОбщее

Написание интерпретатора скриптов на С++. Часть 2: Лексический Анализатор. (Комментарии к статье)

Страницы: 1 2 Следующая »
#0
16:43, 14 дек. 2003

Комментарий к Статье Написание интерпретатора скриптов на С++. Часть 2: Лексический Анализатор.
Продолжаем разговор о написании интерпретатора скриптов, на этот раз речь пойдёт о детальном рассмотрении и построении лексического анализатора.


#1
16:43, 14 дек. 2003

Стандарт языка С++ запрещает использование имен, начинающихся с подчеркивания, за которым следует большая буква, в качестве идентификаторов.

#2
0:17, 15 дек. 2003

Он не запрещает а наставляет так сказать. А писать имена функции по типа super_krutaia_funkcia или ваще по венгерке - ИМХО бред.

#3
8:41, 15 дек. 2003

viv
почему бред, я про венгерскую нотацию... транслит бесспорно уродство ;)

#4
19:49, 15 дек. 2003

Венгерская нотация - не бред. Просто кто-то пользуется им, кто-то не пользуется вообще ничем, кто-то изобретает свой. Кому как удобнее.

#5
10:57, 16 дек. 2003

.................................................................................................................................................................
Структура не плохая, могу сказать что громоздкая (всё это делается проще...),
сложнее будет компилятор сделать...
а сам интепритатор сделать пустяки... главное получше оптимизировать...
я свой интепритатор протестировал производительность не плохая
( в цикле около 6000000 арифметических операций в сек. с числами (Int). Celeron 1.7GHz)

А! Ещё в твоём интепритаторе нужно буднт тип float. (в моём byte, word, int, float, char, pchar, :) )
.................................................................................................................................................................

#6
18:27, 23 янв. 2004

viv
Он запрещает. Почитай-ка сначала, а потом говори ;-)
п.17.4.3.1.2

#7
10:22, 24 мая 2004

Я вот сделал свой интерпретатор и компилятор.
Самое интересное что до прочтение этой статьи.
На мой взгляд проблеммы начинаются при использовании выражений, они распухают например чтобы корректно обработать выпажение a+b<c+1 превращается в (a+b)<(c+1)
и даже а<b чтобы не возиться приходится превращать в иакуюже фигню.
Да и для корректного вычисления a+8*v*m+3 тоже нужно извратиться a+(8*v*m)+3
Только смысл проста парсить текст проги?
Потом каждый раз чтоли текст разбирать?
Надо было сразу преобразовывать программу в набор объектов у которых есть метод Run(Memory* pM) которая будет изменять память в зависимости от исходного состояния

Прошло более 1 года
#8
22:58, 9 ноя. 2005

Когда же автор выпустит следующую статью я уже устал ждать! )
Мне особый интерес представляет виртуальная машина.
Хочется самому написать, но сначала нужно с чего то начать.

#9
23:25, 9 ноя. 2005

Почитай лучше Пратта.

#10
2:00, 10 ноя. 2005

все же после спирита, такие самопальные лексические анализаторы смотрятся не серьезно.

SkySniper
>Хочется самому написать, но сначала нужно с чего то начать.
ну так начни! в чем сложность то? :)

#11
2:32, 10 ноя. 2005

CyberZX
все же после antlr, llk, javacc, такие спириты смотрятся не серьезно.

#12
3:06, 10 ноя. 2005

Sark7
antlr, llk, javacc и еще вот yacc это все конечно замечательно. но это выходит за рамки написания интерпретатора на С++.

#13
19:56, 11 ноя. 2005

CyberZX
раз такой умный может инфу какую подкинеш про написание виртуальной машины? :)))

#14
20:28, 11 ноя. 2005

CyberZX
>antlr, llk, javacc и еще вот yacc это все конечно замечательно. но это выходит за рамки написания интерпретатора на С++.
Собсна почему? Умеет в сишную программу встраиваться, вот и славно. Или вам нужны какие то особенные регэкспы и грамматики, "приближенные" к Цпп? Ну и наздоровье. А меня больше не заводит воздушный цирк с  перегрузкой всех операторов. Вот помню когда мне первый раз про семейство тулзов серии "сс" (compiler compiler) рассказали, я громко вопил и ругался :0 "Да С++, это же мешок ништяков, а не язык! Нахрена мне какие-то левые тулзы? САМ всё напишу не хуже! Значит так, бёрем pcre, а грамматики отлично заменит рекурсивный спуск!"

ЗЫ статью не читал

Страницы: 1 2 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.