|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
А нужен ли компилу лексер?19.04.2011, 11:17. Показов 2880. Ответов 20
Метки нет (Все метки)
Зачем нужен лексер? Вроде бы для перобразования исходного текста в последовательность внутреннего представления лексем. А почему бы не ввести всостав среды разработки редактор сразу представления, являющегося входным для следующего этапа после лексическго анализа? Вот на zx-spectum 48K например программы набирались сразу в байт-коде, являвшемся внутренним представлением бейсика, а потом этот байт-код интерпретировался. И каждый оператор набирался за одну кнопку, а обозначался одним байтом. Ну так почему бы отсюда и не пойти? При наборе строки сразу кодировать операторы и явные константы, распределять адреса переменных, парсить выражения, а компилу давать уже готовые лексемы вместо букв? Почему в большинсве случаев идут по пути набора plain-текста? Причём, редакторы тоже явно умеют разбирать исходники, что видно по подсветке синтаксиса.
0
|
|
| 19.04.2011, 11:17 | |
|
Ответы с готовыми решениями:
20
Калькулятор (Лексер + Парсер)
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 19.04.2011, 13:27 [ТС] | |
|
При чём здесь совок? Спектрум - английская машина. Правда, у меня был её сокофицированный вариант под названием Delta C, но проги для спектрума её признавали за спектрум. И при чём здесь астрал? В студии пробовал исходник на плюсах набрать? Встроенный редактор подсвечивает синтаксис, значит вполне в сосоянии разлобрать исходник. Или лазарус:
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 19.04.2011, 13:39 [ТС] | |
|
Подсветка синтакисиа видан невооружённым глазом, значит и здесь редактор исходника способен его разобрать. А спектрумовские проги я грузил в редактор кода и там ясно был виден байт-код, в котором каждый многобуквенный оператор обозначался одним байтом. И я даже иногда правил этот код прямо в редакторе кода, подглядывая коды операторов по справочнику, а чаще по памяти, а при загруке этих файлов обычным мергом коды снова выглядели как искходник на бейсике, но уже с дургими операторами. Причём, я мог добиться, чтоб эти проги вгылдяели нечитабельно и при повторном редактировании строк в редакторе бейсик-программ приходили в полную негодность, но при загрузке лоадом запускались, сохраняя тип бейсик-файлов. И мог наоборот прочитать аналогично защищённые, но чужие проги, внести свои изменения прям так, не снимая защиты, или снять защиту и загрузить потом в редактор бейсика мергом. Сейчас я уже не помню ни конкертных кодов, ни структуры кода и не смогу прямо в байт-коде ничего написать, но весной 1995-го умел. Вопрос: почему по этому пути пошёл одни Клайв Синкелр? В мануале было прямо сказано, что в редактор бейсика байт-код генерит налету при наборе каждой строки. Если даже спектрум с этим справлялся (меньшше четырёх мегагерц, 980 000 кажется операций в секунду), то почему бы не положить это в основу какой нибудь нормальной среды разработки? Спектрум имел контекстную раскладу клавы, когда нужен опратор, то нажатие например, p давло сразу PRINT, l - LET, i - INPUT и так далее.
0
|
|
|
111 / 112 / 18
Регистрация: 11.03.2011
Сообщений: 421
|
|
| 03.05.2011, 03:14 | |
|
оно-то так...
с таким раскладом может сразу бинарники писать?)) маленькие программы может и можно накидать вот так вот и скормить парсеру, но для больших проектов это просто жуть. ломать голову, сидя за справочником, да еще и различать сущности, записанные в логической структуре (как правило это дерево), которые все похожи... по моему более человекоподобные слова куда гораздо приятнее и понятнее. в смысле что я хотел сказать - не всегда лексер генерит хоть сколько-то бы ни было понятные человеку сущности Добавлено через 6 часов 5 минут кстати, относительно лексеров и парсеров, развивая тему. HTML, php ведь не обрабатываются лексером например, а сразу парсятся. это не компиляция конечно, а интерпретация, тем не менее, вэб-программисты пишут исходник уже сразу лексемами, если можно так выразиться.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||||||||||||||||||||||||||
| 03.05.2011, 05:50 [ТС] | ||||||||||||||||||||||||||||||
0
|
||||||||||||||||||||||||||||||
|
111 / 112 / 18
Регистрация: 11.03.2011
Сообщений: 421
|
|||
| 03.05.2011, 21:53 | |||
|
в результате она разложится на две (теоретически, на практике на несколько команд больше) я в бэйсике код давным давно тоже набирал, правда на Робике (поддержим отечественного производителя ).и справочник по языку тогда влазил в тетрадку на 12 страниц с примерами и пометками, и с подробным описанием. может я не правильно понял, но идея темы состоит в том, что лексер фактически переливает наш исходник "из пустого в порожнее" и нужно ли оно нам? может сразу писать лексемы и отдавать парсеру?))) и еще, это касательно большинства современных компиляторов мысли?)
0
|
|||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||
| 03.05.2011, 21:59 | ||
|
то о чем уже пошла речь - это уже компилятор о чем говорит автор - ниасилил
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 04.05.2011, 05:20 [ТС] | |||
|
0
|
|||
|
111 / 112 / 18
Регистрация: 11.03.2011
Сообщений: 421
|
||||
| 04.05.2011, 17:21 | ||||
|
это ведь невероятно гибкий и уже готовый формат, хотя во многом и неудобный. как там золотое правило гласит: "Разделяй и властвуй" тем более, что есть редакторы, в которых анализ производится "на лету". это касается не только подсветки синтаксиса, но и поиска ошибок в коде, различных Tool Tip-ов и т.д. и т.п. - фич на самом деле масса, они ведь опираются как раз на лексер по идее, на "понимание" написанного текста.
0
|
||||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 04.05.2011, 19:55 | |
|
0
|
|
|
|
|
| 18.10.2023, 15:17 | |
|
taras atavin, кстати да, тоже только что взбрела эта идея.
Почему бы не хранить исходники во внутреннем лекс-коде, который способен "делексироваться" обратно в текст программы. В отличие от объектного кода, dll или exe, поток токенов можно практически без потерь преобразовать обратно(наверное потеряются лишь директивы препроцессора(если это язык си), комментарии, и отступы в коде - но это мелочи)
0
|
|
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,945
|
|
| 18.10.2023, 15:39 | |
|
Kuzia domovenok, открой для себя C# и Java. Байт-код там на ура назад в исходники перегоняется.
0
|
|
|
|
|||||||||||
| 18.10.2023, 20:19 | |||||||||||
|
Usaga, я не про декомпиляцию исходников, я про хранение их в виде абстрактной цепочки токенов языка программирования до какой-либо интерпретации-компиляции их в код
То есть итоговый код все равно не исполнить даже на вирт.машине, его в любом случае предстоит парсить и генерить исполняемый код
0
|
|||||||||||
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,945
|
|
| 19.10.2023, 02:51 | |
|
Kuzia domovenok, ну, я и говорю: смотри С# и Java. Там как раз байт-код JIT'от в исполняемый перегоняется.
0
|
|
|
|
|
| 19.10.2023, 13:33 | |
|
Usaga, байт код это уже исполнямый виртуальной машиной код, а токены это токены
токены однозначно привязаны к используемой лексике исходной программы, байт код - что-то вроде ассемблера, просто он для более умной, чем железный процессор, машины java
0
|
|
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,945
|
|
| 20.10.2023, 05:30 | |
|
Kuzia domovenok, и в чём смысл держать в бинарнике лексемы исходника? Польза практическая в чём?
0
|
|
|
|
|
| 20.10.2023, 10:12 | |
|
Usaga, так редактировать в IDE текст чтобы. Экзешник тоже будет, лексемы это не для запуска из них программы а для запуска из них визуального редактора который преобразует их в текст для программиста
0
|
|
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,945
|
|
| 20.10.2023, 10:28 | |
|
Kuzia domovenok, зачем, бога ради?
0
|
|
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,945
|
|
| 21.10.2023, 10:05 | |
|
vantfiles, я понимаю, что он облегчается. Но это же побочный эффект задумки. А основной смысл какой может быть? Пихать, по сути, исходники в исполняемые файлы, раздувая их размер, чтобы что?
Я понимаю скриптовые языки. Там исходники распространяются потому, что нет стадии компиляции. А тут и компиляция, и код поставляется. Потребительские качества такого бинарника чем и для кого улучшаются? Точно не для конечного пользователя.
0
|
|
| 21.10.2023, 10:05 | |
|
Помогаю со студенческими работами здесь
20
СМА Gorenje WA61101/02, Нужен номинал резистора, Нужен номинал резистора СМА Indesit WIN602(EU), нужен дамп прошивки или конфиг, не включается, нужен дамп прошивки или конфиг СМА Whirlpool AWM245 нужен номинал R6, Whirlpool AWM245 нужен номинал R6 Нужен ли let? Нужен ли он? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|