
Сообщение от
vinxru
Понятно, но хочется Си.
Есть у меня давняя идея сделать для PDP-11 пару [ операционная система + оптимизирующий кросскомпилятор C/C++ PC -> PDP-11 ]. Наверное, писать новые компиляторы под PDP-11 неправильно, поэтому кросскомпиляторы - единственное адекватное решение.
В приниципе - можно ввести в C и С++ небольшие расширения, которые будут выглядеть, как функции библиотеки, а именно [ BCS, BCC, BVS, BVC, SEC, CLC, SEV, CLV ] и использоваться, например, так:
Код:
if( BCS() ) { Error(); }
else { SEV(); }
но при генерации кода для PDP-11 будут компилироваться не в вызовы библиотеки, а в соответствующие команды ассемблера PDP-11.
...

Сообщение от
vinxru
Си - это стековый язык, то есть слегка тормозной.
Но ведь никто не заставляет всегда использовать именно стек. Есть известный метод оптимизации, когда часть регистров используются компилятором, как верхушка стека, поэтому код функции, имеющей пару аргументов вызова и использующей пару временных переменных - может быть скомпилирован вообще без использования стека.
Кстати, Visual С++ (насколько мне показалось) в режиме полной оптимизации именно так и поступает - в результате реализации некоторых простых функций используют только регистры и не содержат кода пролога и эпилога.