История изменений
Исправление
Legioner,
(текущая версия)
:
Я может чего не понимаю, но в моём понимании (а я делал компилятор схемы, про форт, правда, только на лоре читал) схема это совсем непростой язык и уж точно не отображающийся тривиально в какой-либо набор инструкций. Ну или схемой называют не то, что я понимают под схемой. Я проглядел этот sassy - это просто тот же ассемблер, который в s-выражения засунули, там нет ничего высокоуровневого. Хотя, наверное, ничего не мешает навертеть это на основе макросов или каких-то функций, надо обмозговать это. Но всё же в моём понимании это что-то жаваскрипто-подобное (в плане синтаксиса), с прямым управлением регистрами. Что-то вроде (писал не слишком вдумываясь, сорри за ошибки)
function f(signed r0, signed r1, unsigned r2) {
r3 = r0 + r1;
unsigned r3;
if (r3 < r2) {
return r3;
}
signed r3;
return r3 * r0;
}
Т.е. каждая конструкция тривиально преобразовывается в соответствующий машинный код, а также используется опциональная типизация (на уровне signed/unsigned) для выбора правильных инструкций там, где это необходимо.
Исходная версия
Legioner,
:
Я может чего не понимаю, но в моём понимании (а я делал компилятор схемы, про форт, правда, только на лоре читал) схема это совсем непростой язык и уж точно не отображающийся тривиально в какой-либо набор инструкций. Ну или схемой называют не то, что я понимают под схемой. Я проглядел этот sassy - это просто тот же ассемблер, который в s-выражения засунули, там нет ничего высокоуровневого. Хотя, наверное, ничего не мешает навертеть это на основе макросов или каких-то функций, надо обмозговать это. Но всё же в моём понимании это что-то жаваскрипто-подобное (в плане синтаксиса), с прямым управлением регистрами. Что-то вроде (писал не слишком вдумываясь, сорри за ошибки)
function f(signed r0, signed r1, unsigned r2) {
r3 = r0 + r1;
unsigned r3;
unless (r3 < r2) {
return r3;
}
signed r3;
return r3 * r0;
}
Т.е. каждая конструкция тривиально преобразовывается в соответствующий машинный код, а также используется опциональная типизация (на уровне signed/unsigned) для выбора правильных инструкций там, где это необходимо.