Интересный диалог на стыке математики и ... творчества --
вернемся к началу.
1)Разговор про парсер завелся потму, что делать парсер всякими пакетами - это от страха. Помнишь это моё выражение?
он тривиален. 1:1 бнф переписывается на С. Я послал пример
именно чтобы показать: этой задачи нет. Инсталлировать всяку хрень незачем.
2) После парсера. Я писал сразу: это разговор отдельный.
2.1 Если на интерпретацию - ещё тривиальнее парсера. Ты запускал тест?! это более чем работающая вещь. Цитируемая рекурс функция val взята прямо оттудда. поменяй константу, не успеешь ничего увидеь, а это же в винде будет ещё и эмуляция буквенного дисплея дос-сервиса биос.
2.2 Если на компиляцию. Я писал: ховайся. Посмотри описание какого-нибудь встроенного контроллера. Даже не PIC, а можешь посмотреть "продвинутый" вроде ATMEL. Речь не о том, чтоб "оптимизировать", а о том, чтоб хоть как-то перевести самый обычный язык прогр в машинные коды. Тем более, что у атмел быстродействие и память приличные, а есть же ещё микропроцессоры в спичечных головках :) про специализир. DSP уж и не говорю.
2.3 Всё уже было. Прогресс есть не везде. Несомненный прогресс в "железе". В частности, в 70-е гг на каждый язык было по 3-4 штуки разно оптимизирующих компилятора в одной и той же поставке ОС. Один компилировал 30 сек, другой 5 минут, зато оптимизировал код. Эта тема цвела и пахла. В т ч с таких сложных ях, как PL\1(ремесленный но мощный) и Алгол-68(наукообр обьектный), потом ADA(промышленный обьектный). Ещё раз повторю, почему:
машина 20 тыс оп\с в среднем
операция регистр-регист быстрее оп память-память во много очень много раз а с нек регистрами ещё быстрее. INC ax в БЭСМ-6 один миллион оп\с. Или быстрый сумматор просто А, не помню :)
ADD bx, one где one память 200 тыс оп\с. Это машина начала 60-х гг. Отсюда i++ :)))
или программа работает минуту или 10.
Машинное время учитывается и дорого.
Если интерактивный режим - долго и минута. Нужно выдумывать что-то совсем суперское.
отсюда всякие хитрые алг оптимизации, благо и регистров иногда было помногу.
БЫЛИ!!!!!! больше не нужны. Сам ты говорил про стековые машин.
Ещё вот почему не нужны: если микропроцессор "маленький",
то играет роль позиция и вид каждой машинной команды. Перестановки исх кода и замены команд бывают никак не допустимы, т.к. расстановкой команд обходятся глюки чипсета, а зачастую входной C - это почти ассемблер даже со вставками кода или вообще пишут в кодах.
----------------------
ты в мире каких задач?
они разные
вот, сканер штрих-кода да, существует. На выборы ставят, посмотрю
и даже дверной звонок существует
----------------------
как вышло, что сейчас речь про обходы деревьев, в ширину и в глубину, оптимизации и пр про науку - то напишу отдельно
там наука ЕСТЬ
но по то отдельно
деревьев в выходе парсера всё-таки нет:) но согласен их так называть :))))))) формально название правильное
Ещё есть оптимизации путей в графах и конкр выч задач, ты про них?