Size: a a a

Compiler Development

2020 April 05

M

MaxGraey in Compiler Development
Мне тоже интерестно) 3000 строк мономорфного кода это ерунда, абсолютно любой компилятор с отключенными оптимизациями справиться с этим менее чем за 1 секунду. Можно ли это считать моментально?
источник

СЛ

Сергей Лапынин in Compiler Development
Артур Ефимов
В Обероне (компиляторы, как правило, однопроходные) файл каждого модуля один. Экспортируемые процедуры, константы, типы и переменные помечены звёздочками. В Модуле-2 ещё было два файла — definition module и implementation module, — а в Обероне уже один. И однопроходный компилятор без проблем справляется. Весь компилятор занимает порядка 3000 строк виртовского кода и моментально компилирует сам себя (в машинный код).
а потом с этими однопроходными компиляциями начинаются жалобы на какую-то полноту по Тьюрингу. Мол не понятно, что значит а * б и вообще все сложна. Компилятор тормозит, требует постоянно какую-то дополнительную инфу и вообще результаты работы своей кешировать не умеет.

ЦПУ, когда перешли с обработки опкодов на микрокод, стали работать почему-то быстрее.
ЦПУ, когда перешли с банальной обработки команд на конвейеризацию и предсказание ветвлений, стали работать быстрее.

Изучайте суперскалярные вычисления, их логику и вообще философию векторной обработки.
Вон - человек написал самый быстрый парсер json с использованием векторных обработок (жаль в джаве их не удастся использовать). И ведь у него почти нет ветвлений - все на арфиметике, да логике.

Если такое можно сделать на уровне символов - json, да и токенов - ANTLR, то почему подобное нельзя сделать на уровне семантики? Зачем усложнять, если можно разделить все на тривиальные задачи, которые проц будет выполнять быстрее, чем ваше однопроходное творение искусства?
источник

KR

K R in Compiler Development
MaxGraey
Мне тоже интерестно) 3000 строк мономорфного кода это ерунда, абсолютно любой компилятор с отключенными оптимизациями справиться с этим менее чем за 1 секунду. Можно ли это считать моментально?
Моментально - это 60FPS, то есть, где-то до 15 миллисекунд.

А компиляция за одну секунду и больше уже подбешивает.

Это ghc vs Clean.
источник

λ

λoλdog in Compiler Development
Не понимаю, причём тут fps
источник

M

MaxGraey in Compiler Development
K R
Моментально - это 60FPS, то есть, где-то до 15 миллисекунд.

А компиляция за одну секунду и больше уже подбешивает.

Это ghc vs Clean.
Не факт. 300 ms так же ощущается как одно мгновение между вводом и выводом. Да и вообще это чисто субъективное понятие. Нет такой меры «мгновение»)
источник

KR

K R in Compiler Development
MaxGraey
Не факт. 300 ms так же ощущается как одно мгновение между вводом и выводом. Да и вообще это чисто субъективное понятие. Нет такой меры «мгновение»)
60FPS - это общепринятая норма. Впрочем, проверьте сами - hello world на Clean и то же самое на Haskell, компилировать через stack.
источник

λ

λoλdog in Compiler Development
Это норма для отрисовки, причём тут компиляторы ?
источник

KR

K R in Compiler Development
λoλdog
Это норма для отрисовки, причём тут компиляторы ?
Результат работы компилятора тоже отрисовывается. Консолью.
источник

M

MaxGraey in Compiler Development
K R
60FPS - это общепринятая норма. Впрочем, проверьте сами - hello world на Clean и то же самое на Haskell, компилировать через stack.
Покажи мне официальное определение, что мгновение равно 16.66(6) миллисекунды?)
источник

λ

λoλdog in Compiler Development
K R
Результат работы компилятора тоже отрисовывается. Консолью.
И что, фреим реит то тут причём
источник

KR

K R in Compiler Development
λoλdog
И что, фреим реит то тут причём
Вы успеваете провести все необходимые вычисления не сбивая перерисовку.
источник

λ

λoλdog in Compiler Development
Перерисовку чего?
источник

KR

K R in Compiler Development
Блин, ну вы попробуйте разные скорости компиляции.
источник

KR

K R in Compiler Development
0.1 секунды вполне видно.
источник

λ

λoλdog in Compiler Development
Stdout вещь вообще медленная, хз как вы там 0.1 секунды видите
источник

KR

K R in Compiler Development
λoλdog
Stdout вещь вообще медленная, хз как вы там 0.1 секунды видите
Ну не до такой же степени.
источник

λ

λoλdog in Compiler Development
До такой
источник

KR

K R in Compiler Development
λoλdog
Перерисовку чего?
например, если вывод компилятора каким-то образом используется при редактировании , то 60FPS дают эффект мгновенной, а не отложенной реакции. Без лага.

Это видно.
источник

λ

λoλdog in Compiler Development
Ну и опять же, не понятно причём тут фпс
источник

M

MaxGraey in Compiler Development
Вы пытаетесь натянуть сову на глобус ребята. Обсуждаете субективную вкеличину (мнение, точнее ощущение и даже не свое) и пытаетесь этому придать какой то формальный статус=)
источник