Size: a a a

Compiler Development

2020 April 16

AT

Alexander Tchitchigin in Compiler Development
K R
Камлы были более-менее готовы к 97-му.
Java вышла году в 95ом. Мы говорим про вторую половину 80х.
источник

KR

K R in Compiler Development
Alexander Tchitchigin
Java вышла году в 95ом. Мы говорим про вторую половину 80х.
Тогда у меня 4Мб не было. А 64Мб у "академии" тоже если и были, то на кластере. ЕСки имели что-то в районе 2-4Мб.
источник

AT

Alexander Tchitchigin in Compiler Development
K R
Тогда у меня 4Мб не было. А 64Мб у "академии" тоже если и были, то на кластере. ЕСки имели что-то в районе 2-4Мб.
Поэтому ФП заслуженно не пользовалось популярностью, да и Java "клиентах" не взлетела. А теперь ситуация кардинально поменялась.
источник

AT

Alexander Tchitchigin in Compiler Development
K R
Тогда у меня 4Мб не было. А 64Мб у "академии" тоже если и были, то на кластере. ЕСки имели что-то в районе 2-4Мб.
Workstations бывали и с 64 MiB RAM — Spark всякие, да Silicon Graphics...
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
Поэтому ФП заслуженно не пользовалось популярностью, да и Java "клиентах" не взлетела. А теперь ситуация кардинально поменялась.
Java же в телефонах работала и в sim-картах работает. Не такая уж она и требовательная.
источник

PS

Peter Sovietov in Compiler Development
K R
Тогда у меня 4Мб не было. А 64Мб у "академии" тоже если и были, то на кластере. ЕСки имели что-то в районе 2-4Мб.
В те времена на NeXT работала предметно-ориентированная система dataflow-программирования в реальном времени. Естественно, это не то ФП, о котором тут некоторые спорят чуть выше (с осуждением показывает в сторону некоторых :)
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Java же в телефонах работала и в sim-картах работает. Не такая уж она и требовательная.
Это всё уже "другие Java" (JavaME, Java Card), которые появились сильно позже.
источник

KR

K R in Compiler Development
Peter Sovietov
В те времена на NeXT работала предметно-ориентированная система dataflow-программирования в реальном времени. Естественно, это не то ФП, о котором тут некоторые спорят чуть выше (с осуждением показывает в сторону некоторых :)
Я правильно понимаю, что по потреблению памяти есть принципиальная разница в ML и LISP - нужно гонять Хиндли-Милнера, а он-то и жрёт всю память?
источник

МБ

Михаил Бахтерев in Compiler Development
@clayrat Какой-то очень странный взгляд на вычисления в этой статье. А почему lambda - это некий producer значения? lambda-же, это же, просто значение и есть. Без выполнения, оно ничего не продьюсит, а выполнить можно только на машине... Чё-то... Как-то... Логика уж слишком вычурная. К чему в итоге эти все построения?
источник

PS

Peter Sovietov in Compiler Development
K R
Я правильно понимаю, что по потреблению памяти есть принципиальная разница в ML и LISP - нужно гонять Хиндли-Милнера, а он-то и жрёт всю память?
На мой взгляд, все интересное в мире ФП происходило в "безлямбдовых" ЯП :)
А ML и LISP сложно сравнивать, потому что LISP это языковая система или даже ОС в себе. Естественно, она виртуализирует многие вещи, отсюда и накладные расходы.
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Михаил Бахтерев
@clayrat Какой-то очень странный взгляд на вычисления в этой статье. А почему lambda - это некий producer значения? lambda-же, это же, просто значение и есть. Без выполнения, оно ничего не продьюсит, а выполнить можно только на машине... Чё-то... Как-то... Логика уж слишком вычурная. К чему в итоге эти все построения?
я думаю это связано с CPS
источник

AG

Alex Gryzlov in Compiler Development
к тому что выполнение и есть устранение сечений, а исчисление секвенций - логический фреймворк для описания абстрактных машин
источник

AG

Alex Gryzlov in Compiler Development
сечение ~ состояние машины, термы ~ значения, котермы ~ стэк
источник

AG

Alex Gryzlov in Compiler Development
лямбда это продюсер импликаций
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Alex Gryzlov
к тому что выполнение и есть устранение сечений, а исчисление секвенций - логический фреймворк для описания абстрактных машин
как это связано с CPS?
источник

AG

Alex Gryzlov in Compiler Development
источник

AT

Alexander Tchitchigin in Compiler Development
K R
Я правильно понимаю, что по потреблению памяти есть принципиальная разница в ML и LISP - нужно гонять Хиндли-Милнера, а он-то и жрёт всю память?
Разница в том, что LISP — по факту императивный язык с ФП фичами, поэтому на нём можно не заморачиваться и писать очень близко к C/Pascal/Modula с соответствующим перформансом. На ML это сделать гораздо сложнее.
источник

T

TGG in Compiler Development
Alexander Tchitchigin
Во времена, когда 64 МЕГАбайта памяти встречались только в редких мощных "рабочих станциях" ФП было объективно трудно применимо.
Во времена, когда 1 ядро встречается только в микроконтроллерах, изменяемое состояние объективно вредит.
Оптимизации мало не бывает
источник

AT

Alexander Tchitchigin in Compiler Development
TGG
Оптимизации мало не бывает
Ну да, коли уж начал оптимизировать — докатишься и до машинных инструкций. 😂
источник

KR

K R in Compiler Development
Alexander Tchitchigin
Разница в том, что LISP — по факту императивный язык с ФП фичами, поэтому на нём можно не заморачиваться и писать очень близко к C/Pascal/Modula с соответствующим перформансом. На ML это сделать гораздо сложнее.
Кмк, то же самое - просто синтаксис императивщины несколько перегружен :=, ref, !. А так пишите и радуйтесь.
источник