Size: a a a

Compiler Development

2020 February 23

К

Константин in Compiler Development
Они, естественно, отличаются, но не уровнем абстрактности
источник

AT

Alexander Tchitchigin in Compiler Development
Константин
Они, естественно, отличаются, но не уровнем абстрактности
Ну, если для Вас разницы нет, то и говорить не о чем... 🤷‍♀️
источник

К

Константин in Compiler Development
Многие настолько привыкли к тексту, что не видят насколько это абстрактная вещь
источник

PS

Peter Sovietov in Compiler Development
Константин
программная единица = { любой символ }. а дальше обсуждаем "единственно важное" - семантику
А Вы сами можете предложить формальную семантику какого-то вида для своего языка? :)
источник

PS

Peter Sovietov in Compiler Development
Для тех, кто не владеет EBNF — это просто повторение любого символа любое количество раз.
источник

К

Константин in Compiler Development
Peter Sovietov
А Вы сами можете предложить формальную семантику какого-то вида для своего языка? :)
Для начала с помощью семантики придётся ввести ограничение для приведения к нормальному синтаксису. Если что, это было частью риторического вопроса про неважность синтаксиса
источник

PS

Peter Sovietov in Compiler Development
Константин
Для начала с помощью семантики придётся ввести ограничение для приведения к нормальному синтаксису. Если что, это было частью риторического вопроса про неважность синтаксиса
Синтаксис важен и для описания правил переходов SOS-семантики, и для выполнения программы уже на уровне машинного кода (все эти битовые поля командного слова — тоже синтаксис). У промежуточных представлений компилятора свой синтаксис. В системе Nanopass это очень хорошо видно, потому что для каждого прохода задается IR в БНФ-подобном виде. Другое дело, что конкретный или внешний синтаксис входного языка не так важен. Вспомните проект Juice Михаэля Франца, где программы на Обероне предлагалось распространять в виде деревьев абстрактного синтаксиса.
источник

К

Константин in Compiler Development
Поэтому я и писал, что дело в путанице терминалов синтаксиса с синтаксисом в целом. Утрируя, это как путать язык и кодировку. Ну а деревья абстрактного синтаксиса Франца обладают настолько же "абстрактным" синтаксисом, что и исходная программа, иначе её нельзя было бы нормально исполнить. Иными словами, перевод программы из одной формы в другую эквивалентную форму не повышает уровень абстракции.
источник

PS

Peter Sovietov in Compiler Development
Константин
Поэтому я и писал, что дело в путанице терминалов синтаксиса с синтаксисом в целом. Утрируя, это как путать язык и кодировку. Ну а деревья абстрактного синтаксиса Франца обладают настолько же "абстрактным" синтаксисом, что и исходная программа, иначе её нельзя было бы нормально исполнить. Иными словами, перевод программы из одной формы в другую эквивалентную форму не повышает уровень абстракции.
Это и называется семантически эквивалентной трансляцией. Чтобы говорить о ней предметно помимо синтаксиса нужно вводить еще и понятие семантики. Той, которая позволяет установить, что форма Оберона и форма деревьев обозначают одну и ту же программу.
источник

К

Константин in Compiler Development
Верно.
Но главное, что синтаксис из "абстрактного" синтаксиса никуда не девается, он просто меняет "кодировку".
источник
2020 February 24

VT

Vasiliy Tereshkov in Compiler Development
Коллеги, разъясните тривиальный терминологический вопрос: можно ли считать динамическое подключение DLL разновидностью FFI? Или FFI подразумевает только статическую компоновку?
источник

M

MaxGraey in Compiler Development
Кстати интересстный бенчмарк на эту тему
https://habr.com/ru/post/413181/
источник

KR

K R in Compiler Development
Vasiliy Tereshkov
Коллеги, разъясните тривиальный терминологический вопрос: можно ли считать динамическое подключение DLL разновидностью FFI? Или FFI подразумевает только статическую компоновку?
FFI - это же вроде вызов из языка в язык. А статическое или динамическое связывание - не важно.
источник

__

_________ _________ in Compiler Development
источник

__

_________ _________ in Compiler Development
источник

__

_________ _________ in Compiler Development
смотрите какая парадигма подъехала
источник

KR

K R in Compiler Development
Dr Web хорошо ловил представителей этой парадигмы.
источник

VT

Vasiliy Tereshkov in Compiler Development
K R
FFI - это же вроде вызов из языка в язык. А статическое или динамическое связывание - не важно.
То есть если программа на языке X вызывает функцию на C из Kernel32.dll - это уже FFI? Просто мне казалось, что упоминание FFI, как правило, подразумевает нечто большее.
источник

I

Ioann_V in Compiler Development
@shipilev а в fokjoinpool, там при создании задачи, мы сначала ее сплитим, так?
источник

I

Ioann_V in Compiler Development
верно я понимаю, что выполняться они будут, только после того как засплитятся полностью?
источник