Size: a a a

Compiler Development

2020 May 04

AT

Alexander Tchitchigi... in Compiler Development
Peter Sovietov
Кстати, в копилку "удивительных историй" про АЭС, спутники и военных хочу еще одну предложить: на самом деле большая часть проекта sel4 (да, то самое "доказанное микроядро") написана на Питоне! %)
Беззастенчевый троллинг детектед! 😊
источник

PS

Peter Sovietov in Compiler Development
Alexander Tchitchigin
Беззастенчевый троллинг детектед! 😊
Но формально-то я, скорее всего, прав! ;) Но, да, подшучиваю над рубрикой "мифы и легенды" в духе классического "программа написанная на форте работает быстрее программы, написанной на ассемблере, потому что она обращается к регистрам напрямую, минуя процессор." :)
источник

AT

Alexander Tchitchigi... in Compiler Development
Peter Sovietov
Но формально-то я, скорее всего, прав! ;) Но, да, подшучиваю над рубрикой "мифы и легенды" в духе классического "программа написанная на форте работает быстрее программы, написанной на ассемблере, потому что она обращается к регистрам напрямую, минуя процессор." :)
источник

V

Vlad in Compiler Development
Dmitry Ponyatov
А для Оберона уже построили формально доказанный компилятор, как для Certкакеготам Си?
Не, у них там упор на то, что язык настолько простой, что ошибки все сразу видны. Вот эта тема из совсем недавних очень показательна в плане понимания парадигмы, в которой варятся оберонщики: https://forum.oberoncore.ru/viewtopic.php?p=111671#p111671
(пропущенная проверка на NULL невозможна в обероне, потому что программист не отвлечен на особенности "сложного" языка и думает только об узких местах типа проверок на NULL)
источник

V

Vlad in Compiler Development
Vlad
Не, у них там упор на то, что язык настолько простой, что ошибки все сразу видны. Вот эта тема из совсем недавних очень показательна в плане понимания парадигмы, в которой варятся оберонщики: https://forum.oberoncore.ru/viewtopic.php?p=111671#p111671
(пропущенная проверка на NULL невозможна в обероне, потому что программист не отвлечен на особенности "сложного" языка и думает только об узких местах типа проверок на NULL)
Соответственно тестов в виртовском компиляторе вы тоже не найдете :) Да что там тестов - даже version constrol "излишен"...
источник

DP

Dmitry Ponyatov in Compiler Development
Peter Sovietov
Но формально-то я, скорее всего, прав! ;) Но, да, подшучиваю над рубрикой "мифы и легенды" в духе классического "программа написанная на форте работает быстрее программы, написанной на ассемблере, потому что она обращается к регистрам напрямую, минуя процессор." :)
активируя нужные настройки DMA - помню гдето такой коммент вживую видел, в RU.FORTH кажется
источник

AG

Alex Gryzlov in Compiler Development
то есть оберон это такое прото-го?
источник

DP

Dmitry Ponyatov in Compiler Development
Vlad
Не, у них там упор на то, что язык настолько простой, что ошибки все сразу видны. Вот эта тема из совсем недавних очень показательна в плане понимания парадигмы, в которой варятся оберонщики: https://forum.oberoncore.ru/viewtopic.php?p=111671#p111671
(пропущенная проверка на NULL невозможна в обероне, потому что программист не отвлечен на особенности "сложного" языка и думает только об узких местах типа проверок на NULL)
Реализация языка со зверско-параноидальным контролем типов и аллокаций памяти вряд ли будет простой
источник

M

MaxGraey in Compiler Development
Vlad
Не, у них там упор на то, что язык настолько простой, что ошибки все сразу видны. Вот эта тема из совсем недавних очень показательна в плане понимания парадигмы, в которой варятся оберонщики: https://forum.oberoncore.ru/viewtopic.php?p=111671#p111671
(пропущенная проверка на NULL невозможна в обероне, потому что программист не отвлечен на особенности "сложного" языка и думает только об узких местах типа проверок на NULL)
Там есть такое:
> Если я правильно понимаю, то в Блэкбоксе такая ошибка привела к аварийной остановке при первом обращении к неразмещенному указателю и выявили бы её давным давно.

Шах и там Оберон хейтеры 😉
источник

PS

Peter Sovietov in Compiler Development
Кстати говоря, когда я следил за нововведениями в Oberon-07, у меня складывалось впечатление, что Вирт специально накладывает ограничения на форму управляющего графа программы для того, чтобы легче было написать статический анализатор. Но, скорее всего, это было просто совпадение :)
источник

E

Eugene in Compiler Development
Dmitry Ponyatov
А для Оберона уже построили формально доказанный компилятор, как для Certкакеготам Си?
это никому не нужно, ведь софта на обероне практически нет, так что и клиентов у такого компилятора не будет...
источник

V

Vlad in Compiler Development
Dmitry Ponyatov
Реализация языка со зверско-параноидальным контролем типов и аллокаций памяти вряд ли будет простой
Там система типов строгая, но крайне примитивная... Так что работающая реализация действительно делается на коленке.
источник

VM

Victor Miasnikov in Compiler Development
Alex Gryzlov
то есть оберон это такое прото-го?
Есть и такая версия -)

В предках - указан.
источник

VM

Victor Miasnikov in Compiler Development
MaxGraey
Там есть такое:
> Если я правильно понимаю, то в Блэкбоксе такая ошибка привела к аварийной остановке при первом обращении к неразмещенному указателю и выявили бы её давным давно.

Шах и там Оберон хейтеры 😉
Берём "блоки объявления переменных" VAR ... BEGIN ... END из Ada ( да и из Modula-3).

Все переменные инициализируем "на месте".

Null просто "не появляется в ОЗУ".

 Кстати, это впечатления от существующего кода на Ada.

( не думаю, что это всё есть в существующих на данный момент Oberon-ах. Но дисциплиной программирования обеспечить можно. )
источник

E

Eugene in Compiler Development
Victor Miasnikov
Берём "блоки объявления переменных" VAR ... BEGIN ... END из Ada ( да и из Modula-3).

Все переменные инициализируем "на месте".

Null просто "не появляется в ОЗУ".

 Кстати, это впечатления от существующего кода на Ada.

( не думаю, что это всё есть в существующих на данный момент Oberon-ах. Но дисциплиной программирования обеспечить можно. )
Null обычно приходит как параметр процедуры
источник

M

MaxGraey in Compiler Development
Это можно обеспечить на уровне дизайна ЯП. Например убрать null вообще заменив его на Optional или добавить nullish композитный или дженерик тип и следить за таким типом на уровне анализа потока управления как это сделано в TypeScript
источник

PS

Peter Sovietov in Compiler Development
Действительно странно (даже по меркам Вирта), что допускается создание неинициализированных локальных переменных: "The values of local variables are undefined upon entry to the procedure."
источник

PS

Peter Sovietov in Compiler Development
Невозможность объявить переменную по месту ее использования тоже радости не вызывает. Это я все привожу примеры педагогического уровня.
источник

VS

Vasily Shapenko in Compiler Development
Когда речь заходит про человеческий фактор, хочется плакать. Но это так, офтоп, вот эти все "дисциплина программирования этц". Вменяемый язык должен отрубать руки еще на этапе написания кода, имхо
источник

МБ

Михаил Бахтерев... in Compiler Development
Vasily Shapenko
Когда речь заходит про человеческий фактор, хочется плакать. Но это так, офтоп, вот эти все "дисциплина программирования этц". Вменяемый язык должен отрубать руки еще на этапе написания кода, имхо
Это невозможно, чисто теоретически.
источник