Size: a a a

Compiler Development

2020 July 09

BD

Berkus Decker in Compiler Development
Val Krylov
Если класс объекта унаследован от классов Base1 и Base2, то Base2* на него будет вести в середину.
не не
он будет вести в начало Base2 всё верно
источник

BD

Berkus Decker in Compiler Development
Виталий Медоваров
Это вроде как имплементейшн специфик и полагаться на то где что будет лежать нельзя
тут отлично помогает Stanley Lippman, “Inside C++ Object Model”

очень рекомендую
источник

VK

Val Krylov in Compiler Development
Aleksey Shipilev
Я так скажу, что упаковщик полей в JVM принципиально может положить поля подкласса в блок, где лежат поля суперкласса, если там есть подходящие дырки. Если бы у рыбы была шерсть (зачёркнуто) интериор-поинтеры, то было бы принципально возможно получить поле класса SubClass, которое лежит по отрицательному оффсету от SubClass* :)
Да, но в JVM нет нужды в этом, так как не поддерживается множественное наследование. А вот можно ли в плюсах упаковать весь Base2 в дырки от Base1 - думаю что стандарт не ограничивает, а остальное зависит от разработчиков компиляторов.
источник

VK

Val Krylov in Compiler Development
Ну и специфика [[no_unique_address]], как обычно.
источник

AS

Aleksey Shipilev in Compiler Development
А, multiple inheritance, я прошляпил, пардон.
источник

p

polunin.ai in Compiler Development
так-с, а какие способы описания спецификации синтаксиса приняты? я чет начал описывать в обычном BNF, мне сказали что часто описывают в ANTLR.
источник

f

fldlg2 in Compiler Development
polunin.ai
так-с, а какие способы описания спецификации синтаксиса приняты? я чет начал описывать в обычном BNF, мне сказали что часто описывают в ANTLR.
Если регулярная грамматика, то лучше всего подходят регулярные выражения. Если что-то сложнее — EBNF. Или диаграммы Вирта.
источник

p

polunin.ai in Compiler Development
fldlg2
Если регулярная грамматика, то лучше всего подходят регулярные выражения. Если что-то сложнее — EBNF. Или диаграммы Вирта.
Грамматика контекстно зависимая
источник

IK

Ivan Kochurkin in Compiler Development
polunin.ai
так-с, а какие способы описания спецификации синтаксиса приняты? я чет начал описывать в обычном BNF, мне сказали что часто описывают в ANTLR.
Там EBNF - улучшенная версия BNF.
источник

f

fldlg2 in Compiler Development
polunin.ai
Грамматика контекстно зависимая
Подразумеваются вставки-предикаты или что-то сложнее? Если первое, подойдут всё те же диаграммы Вирта или ANTLR.
источник

f

fldlg2 in Compiler Development
В википедии написано, что BNF — для CFG, но это не так.
UPD: хотя, если упорствовать, что слева от ::= может быть только единственный нетерминал, то да, BNF — только для CFG.
источник

PS

Peter Sovietov in Compiler Development
fldlg2
Подразумеваются вставки-предикаты или что-то сложнее? Если первое, подойдут всё те же диаграммы Вирта или ANTLR.
Кто-то в наше время всерьез использует "железнодорожные" диаграммы для спецификации ЯП? :)
источник

BD

Berkus Decker in Compiler Development
Peter Sovietov
Кто-то в наше время всерьез использует "железнодорожные" диаграммы для спецификации ЯП? :)
ну вон спека на JSON красиво выглядит)
источник

PS

Peter Sovietov in Compiler Development
Berkus Decker
ну вон спека на JSON красиво выглядит)
Там Крокфорд, похоже, специально использует ретро-стиль, как в учебниках его молодости :)
источник

BD

Berkus Decker in Compiler Development
ну для такого незамутненного синтаксиса оно и правда очень наглядно выглядит
источник

BD

Berkus Decker in Compiler Development
попробовал бы он такое с C++
источник

IK

Ivan Kochurkin in Compiler Development
fldlg2
В википедии написано, что BNF — для CFG, но это не так.
UPD: хотя, если упорствовать, что слева от ::= может быть только единственный нетерминал, то да, BNF — только для CFG.
А такие грамматики в природе существуют на практике?
источник

BD

Berkus Decker in Compiler Development
Ivan Kochurkin
А такие грамматики в природе существуют на практике?
по-моему виртовские языки все на (E)BNF выражаются
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Berkus Decker
по-моему виртовские языки все на (E)BNF выражаются
в контекстно-зависимом виде?
источник

PS

Peter Sovietov in Compiler Development
EBNF это просто легкий синтаксический сахар для BNF.
источник