Size: a a a

Compiler Development

2020 February 04

YS

Yuriy Syrovetskiy in Compiler Development
и такие же семантические циклы можно рекурсией задавать, как в С
источник

KR

K R in Compiler Development
"Древовидный" - это слишком обще - у ассемблера тоже программу можно представить, как B-tree.
источник

YS

Yuriy Syrovetskiy in Compiler Development
K R
"Древовидный" - это слишком обще - у ассемблера тоже программу можно представить, как B-tree.
"можно представить" притянуто за уши. программа на Хаскеле и С — сразу дерево и ничто иное
источник

МБ

Михаил Бахтерев in Compiler Development
Это, же компьютер. В нём вообще всё древовидное.
источник

KR

K R in Compiler Development
Деревянное и ламповое!
источник

YS

Yuriy Syrovetskiy in Compiler Development
Михаил Бахтерев
Это, же компьютер. В нём вообще всё древовидное.
всё нолики и единички
источник

KR

K R in Compiler Development
Самая суть!
источник

АУ

Анна Удовиченко in Compiler Development
K R
У них довольно прикольная письменность. С одной стороны, азбука, а с другой - квадратная. Какой-нибудь корейский 1C может выглядеть совершенно сумасшедшим образом.
есть эзотерический язык на хангыле - 아희 ("ахи"). Он как раз двумерный. Но это ж неинтересно
источник

МБ

Михаил Бахтерев in Compiler Development
Yuriy Syrovetskiy
всё нолики и единички
Ну, да. Нолик выбирает левое поддерево, а единичка - правое :) Так и живём.
источник

МБ

Михаил Бахтерев in Compiler Development
Даже на уровне микросхем.
источник

KR

K R in Compiler Development
Тем не менее, я не очень понимаю, почему Хаскель не попадает под "графы". У Плазмеера написано, что всё там - graph rewriting.
источник

KR

K R in Compiler Development
Кстати, удивительно, но среди С++-ников то, что язык метапрограммирования хорошо описывается term-rewriting, не является общим местом.
источник

МБ

Михаил Бахтерев in Compiler Development
Так всё и всегда может быть выражено через term rewriting. Алгорифмы Маркова же и операционная семантика. Вопрос только в размерах и кодировке терма.
источник

KR

K R in Compiler Development
Михаил Бахтерев
Так всё и всегда может быть выражено через term rewriting. Алгорифмы Маркова же и операционная семантика. Вопрос только в размерах и кодировке терма.
Не, там очень естественно получается, напрямую:

template <int> class Z {тело1};
template <class T> class Z { тело2 };

и

Z "int" = { тело 1}
Z T = {тело 2}
источник

KR

K R in Compiler Development
Собственно, только равно поставить перед открывающей {
источник

KR

K R in Compiler Development
Но, к сожалению, из-за сложной SFINAE это так - приближение, хотя и очень удачное.
источник

МБ

Михаил Бахтерев in Compiler Development
Ох уж эти синтаксические мелочи. Все должны писать на Лисп, чтобы не отвлекаться на несущественные вопросы! 🤣
источник

KR

K R in Compiler Development
Я насчитал 3 компилятора из чего-то Haskell 98 - подобного в метапрограммы C++. Это MetaFun, eClean и ещё какой-то диссер.

А вот обратно - откомпилировать Boost::mpl во что-то читаемое, увы, нельзя.
источник

YS

Yuriy Syrovetskiy in Compiler Development
K R
Тем не менее, я не очень понимаю, почему Хаскель не попадает под "графы". У Плазмеера написано, что всё там - graph rewriting.
может быть, внутри, но синтаксис линейно-деревянный, не графовый
источник

VT

Vasiliy Tereshkov in Compiler Development
K R
А какие "истинно двумерные"?
источник