[an error occurred while processing this directive]
Добавить масла во флэйм? Есть еще и Forth - принципиально отличается от Паскаля, Си и т.п.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Pol-SDG 21 января 2006 г. 15:11
В ответ на: При разработке компилятора СИ гораздо больше ебли, чем при разработке компилятора ПАСКАЛЯ из-за бОльшей "контестозависимости" его грамматики. Из-за этого компилятор ПАСКАЛЯ в принципе гораздо более "быстродействующий" и простой, так как надо делать меньше операций поиска и сравнения (перебора). Например, что мешало сделать в СИ конструкцию: main ():void . Нет сделали void main (). Казалось бы, какая на х.. разница . Для "писателей" на языке почти никакой. А вот для отправлено Доктор ТуамОсес 20 января 2006 г. 15:51

Постоянно приходится программировать на :
Си (под х86),
Паскале-Дельфи (под Форточки),
ВБА (довольно навороченные макросы для акада и эксела),
и ... бальзам на душу программиста...
на Форте (под ДОС и 51)

Мое ИМХО.
Первые три отличаются только в синтаксических конструкциях (что, не скрою, сильно раздражает), да названиями сходных функций (что раздражает еще больше :). В целом же, остаются детишками постфиксной нотации. А постфиксная нотация, принципиально не совместима с "компьютерной логикой", которой сначала надо операнды дать, а уж потом операцию с ними проводить. Вот и упражняются уважаемые компиляторо-писатели над парсингом конструкций типа:
x = (2 + 3)*4;
или не дай бог:
x := (2 + 3)*функция_которая_возращает_целое()
и т.д.
Отсюда же растут ноги (или что там у них) остальных атавизмов, прежде всего типов данных и указателей на них. (Ведь надоже компилятору знать вызов какой функции умножения компилировать - для integer, double или float...
Однако сколько веревочке не виться все прийдет к одному - операнды один за другим лягут на стек (в виде литералов или адресов памяти) и долгожданным call функция_которая_все_это_разгребет (или схлопочет General Protection Error если компилятор не понял всю глубину ваших глубин :-) Шучу.
Но есть и другая концепция. Это Форт... :-)
В нем нет типов данных... и вообще нет никаких ограничений - твори программист, и компилятор не будет тебе мешать вывести долгожданное Hello World на экран... чужого компьютера :-)
Тот же пример на Форте:
2 3 + функциz_которая_возращает_слово * x !

Согласитесь, парсинг такого выражения - тривиальная задача :)
Заканчиваю затянувшийся пост. Просто хотелось зародить в Вас сомнения.
:-)
Для тех кто дочитал - в следующем посте приведу пример на форте.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru