Size: a a a

Compiler Development

2021 January 02

dt

d t in Compiler Development
d t
Я за эффективную реализацию - для интерпретируемого языка видимо это первый вариант.

Про "generics". Хорошо когда обобщенное программирование не "отличается" от не обобщенного. Если придется вводить новые конструкции - возможно у вас очередная помойка в качестве языка.

По поводу библиотеки. Считаю что не нужно тащить в нее что либо, пока оно не пригодилось.
1) Так меньше шансов затащить ненужного говна, которое позже сами же не будете поддерживать. Например, без доказательств: В питоне понатащили всякого, а поддерживать часть из этого некому; Джосатис писал в своей книге про библиотеку плюсовую, что они затащили std::valarray, но поддерживать его некому - в данном случае речь видимо не про реализацию. Сам джосатис учавствует\учавствовал в плюсовом комитете.
2) Меньше шансов потратить время зря, ну или больше шансов в каждый момент времени тратить его на задачи, необходимые в данный момент.
По поводу первого предложения. Сам бы я так, конечно, делать не стал, а воспользовался бы средствами языка - и дальше уже улучшал бы язык и реализацию.
источник

К

Константин in Compiler Development
Vasiliy Tereshkov
Нет, это интерпретатор. Смысла в самокомпиляции особого нет.
Один из великих смыслов писать исполнитель на собственном языке заключается в том, что автор  уже на этапе разработки исполнителя сполна вкушает красоты своего творения
источник

DP

Defragmented Panda in Compiler Development
dogfeeding
источник

DP

Defragmented Panda in Compiler Development
Константин
Один из великих смыслов писать исполнитель на собственном языке заключается в том, что автор  уже на этапе разработки исполнителя сполна вкушает красоты своего творения
название этой идеи в бизнесе вообще )
источник

IB

Ivan Boldyrev in Compiler Development
Dogfooding.
источник

DP

Defragmented Panda in Compiler Development
(наверное. я не уверен)
источник

AT

Alexander Tchitchigi... in Compiler Development
Ivan Boldyrev
Dogfooding.
Yep. From "eating you're dog's food".
источник

M

MaxGraey in Compiler Development
Ivan Boldyrev
Dogfooding.
Догфудинг если рассматривать это как благо, но есть и обратная интерпретация того же явления - NIH-синдром.
источник

VT

Vasiliy Tereshkov in Compiler Development
d t
Я за эффективную реализацию - для интерпретируемого языка видимо это первый вариант.

Про "generics". Хорошо когда обобщенное программирование не "отличается" от не обобщенного. Если придется вводить новые конструкции - возможно у вас очередная помойка в качестве языка.

По поводу библиотеки. Считаю что не нужно тащить в нее что либо, пока оно не пригодилось.
1) Так меньше шансов затащить ненужного говна, которое позже сами же не будете поддерживать. Например, без доказательств: В питоне понатащили всякого, а поддерживать часть из этого некому; Джосатис писал в своей книге про библиотеку плюсовую, что они затащили std::valarray, но поддерживать его некому - в данном случае речь видимо не про реализацию. Сам джосатис учавствует\учавствовал в плюсовом комитете.
2) Меньше шансов потратить время зря, ну или больше шансов в каждый момент времени тратить его на задачи, необходимые в данный момент.
А тип ключей словаря допускать любой? Или, допустим, только строки? Или только целые числа и строки? Во всяком случае, действительные числа в качестве ключей - дело, кажется, бессмысленное.
источник

VT

Vasiliy Tereshkov in Compiler Development
Константин
Один из великих смыслов писать исполнитель на собственном языке заключается в том, что автор  уже на этапе разработки исполнителя сполна вкушает красоты своего творения
Сам бы хотел вкусить. Но для интерпретатора это реально бесполезно. Всё равно нужно будет держать под рукой откомпилированный exe-шник интерпретатора. Кажется, Python на Python и Lua на Lua никто не писал :)
источник

К

Константин in Compiler Development
давно сделано, посмотрите pypy и luajit(частично)
источник

BD

Berkus Decker in Compiler Development
Alexander Tchitchigin
Yep. From "eating you're dog's food".
Могу посоветовать Elevate - хорошо учит различать you’re your и вот это вот всё.
источник

TS

Timur Safin in Compiler Development
Vasiliy Tereshkov
Сам бы хотел вкусить. Но для интерпретатора это реально бесполезно. Всё равно нужно будет держать под рукой откомпилированный exe-шник интерпретатора. Кажется, Python на Python и Lua на Lua никто не писал :)
и (в дополнение к питона ну питоне) вчера в luajit списке проходил Luajit на luajit https://gist.github.com/meepen/807dd81a572ffb0f28a8c44c04922fdd
источник

VT

Vasiliy Tereshkov in Compiler Development
Константин
давно сделано, посмотрите pypy и luajit(частично)
Насколько я понял, в случае PyPy всё-таки появляется настоящая компиляция RPython -> C -> exe. Тогда писать на RPython  действительно имело смысл.

А чистая самоинтерпретация  мне попадалась только в очаровательном, но совершенно игрушечном c4. И запускать его предлагалось как c4 c4.c c4.c c4.c hello.c
источник

К

Константин in Compiler Development
Vasiliy Tereshkov
Насколько я понял, в случае PyPy всё-таки появляется настоящая компиляция RPython -> C -> exe. Тогда писать на RPython  действительно имело смысл.

А чистая самоинтерпретация  мне попадалась только в очаровательном, но совершенно игрушечном c4. И запускать его предлагалось как c4 c4.c c4.c c4.c hello.c
RPython появился не сразу.
А транслировать во что-то всегда придётся, это ничего не меняет. И, как минимум, транслятор может быть без проблем написан на своём языке
источник

M

MrSmith in Compiler Development
Alexander Tchitchigin
Yep. From "eating you're dog's food".
Так себе, у собак метаболизм другой, мы же сено не жуем
источник

VT

Vasiliy Tereshkov in Compiler Development
Timur Safin
и (в дополнение к питона ну питоне) вчера в luajit списке проходил Luajit на luajit https://gist.github.com/meepen/807dd81a572ffb0f28a8c44c04922fdd
Забавная штука! Но по-моему, тоже игрушечная, как и c4:

local lshift = function(n, bit)
 return math.floor(n * (2 ^ bit))
end
источник

dt

d t in Compiler Development
Vasiliy Tereshkov
А тип ключей словаря допускать любой? Или, допустим, только строки? Или только целые числа и строки? Во всяком случае, действительные числа в качестве ключей - дело, кажется, бессмысленное.
Не вижу причин вводить ограничия на допустимый тип ключей.
источник
2021 January 03

BD

Berkus Decker in Compiler Development
d t
Не вижу причин вводить ограничия на допустимый тип ключей.
все что реализует hashable will do
источник

BD

Berkus Decker in Compiler Development
если словарь это хэшмапа, конечно
источник