Size: a a a

Compiler Development

2020 May 21

IK

Ivan Kochurkin in Compiler Development
Konstantin
Круто, спасибо. А какие-нибудь инструменты есть, с чего начинать знакомиться с этой темой?
Есть инструмент на основе ANTLR, который позволяет задействовать сами грамматики (их целый репозиторий) для генерации кода на их основе: https://github.com/renatahodovan/grammarinator
источник

K

Konstantin in Compiler Development
Ivan Kochurkin
Есть инструмент на основе ANTLR, который позволяет задействовать сами грамматики (их целый репозиторий) для генерации кода на их основе: https://github.com/renatahodovan/grammarinator
Спасибо
источник

SG

Semyon Grigorev in Compiler Development
Vlad
А есть в природе что-то типа EBNF, только наоборот. Некая формальная запись, чтобы из дерева сгенерить текст на заданном языке?
Это про pretty printing типа такого? https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf
источник

SG

Semyon Grigorev in Compiler Development
В статье, конечно не про формализм, но чтобы лучше задачу понимать.
источник

RS

Rifat S in Compiler Development
Какие есть императивные языки программирования, в которых запрещен aliasing (то есть нельзя, например, определить функцию func(int &a, int &b), а затем вызвать func(x, x), так как переменные a и b внутри func будут синонимами)?
источник

AT

Alexander Tchitchigi... in Compiler Development
Rifat S
Какие есть императивные языки программирования, в которых запрещен aliasing (то есть нельзя, например, определить функцию func(int &a, int &b), а затем вызвать func(x, x), так как переменные a и b внутри func будут синонимами)?
Rust, Pony.
источник

BD

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

AT

Alexander Tchitchigi... in Compiler Development
Не считая языков конкретно для верификации типа WhyML или, там, Frama C.
источник

MM

Mikhail Maltsev in Compiler Development
Rifat S
Какие есть императивные языки программирования, в которых запрещен aliasing (то есть нельзя, например, определить функцию func(int &a, int &b), а затем вызвать func(x, x), так как переменные a и b внутри func будут синонимами)?
Fortran вроде бы
источник

FO

FORTRAN ONE LOVE in Compiler Development
Mikhail Maltsev
Fortran вроде бы
Можно
источник

FO

FORTRAN ONE LOVE in Compiler Development
Mikhail Maltsev
Fortran вроде бы
module test
 implicit none
contains
 subroutine add1(a, b, res)
   integer :: a, b
   integer, intent(out) :: res
   a = 1
   b = 2
   res = a + b
 end subroutine add1
end module test
program main
 use test
 implicit none
 integer res, a
 a = 1
 call add1(a, a, res)
 print *, res
end program main


Ответ: 4
источник

MM

Mikhail Maltsev in Compiler Development
А с массивами?
источник

PS

Peter Sovietov in Compiler Development
Mikhail Maltsev
А с массивами?
Из Мучника
источник

VT

Vasiliy Tereshkov in Compiler Development
а это кто
Я тоже этот самый человек!
Будем знакомы :) А можно посмотреть ваш проект?
источник

а

а это кто in Compiler Development
Vasiliy Tereshkov
Будем знакомы :) А можно посмотреть ваш проект?
Когда доделаю,тогда покажу :)
источник

K

Kakadu in Compiler Development
Кто-нить видел исследования, где сравнивают скорость выделения объектов (в минорной куче, например) между разными языками/средами исполнения?
источник

dt

d t in Compiler Development
По меньшей мере есть бенчмарки от разработчиков зыков\vm. Я такие видел где-то в репозиториях d - dlang.org. И также вроде в репозиториях .net.
источник

M

MaxGraey in Compiler Development
Kakadu
Кто-нить видел исследования, где сравнивают скорость выделения объектов (в минорной куче, например) между разными языками/средами исполнения?
В смысле? Измерить оферхед над вызовом malloc из libc + возможный оверхед на инициализацию добавления информации для GC если он присутствует?
источник

AD

Artyom Drozdov in Compiler Development
Kakadu
Кто-нить видел исследования, где сравнивают скорость выделения объектов (в минорной куче, например) между разными языками/средами исполнения?
не очень понятно как сравнивать: в языках с GC ты можешь получить основное пенальти при деаллокации
источник

а

а это кто in Compiler Development
Можно ли назвать reference counting видом GC? Вроде пишут что RC требует меньше памяти и процессорного времени чем Tracing GC, но я не уверена так ли это.
источник