Size: a a a

Compiler Development

2020 March 31

ИЧ

Илья Чистяков in Compiler Development
Alexander Tchitchigin
Это сейчас даже у C++ хорошо получается и у Node.js. 🤷‍♀️
к сожалению, поэтому кресты в приоритете, питон у нас хотят убить, правда выяснилось что с кадрами не так всё просто) мало кто захочет ручки пилить на плюсах из продвинутых юзеров
источник

ИЧ

Илья Чистяков in Compiler Development
MaxGraey
Без проблем
остаётся дело за малым - пробиться в список разрешенных языков
источник

ИЧ

Илья Чистяков in Compiler Development
а если с гошкой сравнивать?
источник

МБ

Михаил Бахтерев in Compiler Development
MaxGraey
gradual typing, LLVM JIT поэтому очень быстрая. Невероятный набор типов, есть даже two folded float points. Ну и мат библиотека вылизана намного лучше питоновской и главное написана на той же Джулии
А они теперь офоциально пишут о gradual typing? Раньше у них было multistage specializing compilation.
источник

M

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

SM

Sailor Moon in Compiler Development
Alexander Tchitchigin
OOP in Julia is arguably better.
А можно по подробнее? Мне понравилось как в питоне реализовано множественное наследование (с их super()). Про юлию мало знаю
источник

AT

Alexander Tchitchigin in Compiler Development
Sailor Moon
А можно по подробнее? Мне понравилось как в питоне реализовано множественное наследование (с их super()). Про юлию мало знаю
Если Вам нравится как сделано в Питоне, то Julia врядли понравится. 😊
источник

SM

Sailor Moon in Compiler Development
Alexander Tchitchigin
Если Вам нравится как сделано в Питоне, то Julia врядли понравится. 😊
Почему же так?
источник

AT

Alexander Tchitchigin in Compiler Development
Sailor Moon
Почему же так?
Похоже на то, что Вам нравится подход типа more is more, типа https://www.hillelwayne.com/post/negatypes/ а в Julia скорее less is more. Сильно больше ограничений, почти вообще не ООП. 😊
источник

FO

FORTRAN ONE LOVE in Compiler Development
А мне не понравилось работать с Julia в интерактивном режиме. Слишком далеко надо думать вперед, чтобы не перезапускать REPL для очистки пар имя-переменной:тип-переменной... А вот когда полностью понимаешь, что хочешь сделать и в каких типах - тогда все классно
источник

AT

Alexander Tchitchigin in Compiler Development
FORTRAN ONE LOVE
А мне не понравилось работать с Julia в интерактивном режиме. Слишком далеко надо думать вперед, чтобы не перезапускать REPL для очистки пар имя-переменной:тип-переменной... А вот когда полностью понимаешь, что хочешь сделать и в каких типах - тогда все классно
То ли дело FORTRAN! 😂
источник

FO

FORTRAN ONE LOVE in Compiler Development
Alexander Tchitchigin
То ли дело FORTRAN! 😂
Да. Он просто на компиляции падает в таком случае. :) (Знаю про интерактивный, но не трогал)
источник

Т8

Т-34 85 in Compiler Development
Хороша ли идея разделить в языке, подобном C++ и C, типы указателей на стековые и на хиповые?

например

string stackString;
string# stackStringPointer = &stackString;
string* heapStringPointer = new string;
источник

E

EgorBo in Compiler Development
нужно больше закорючек богу закорючек
источник

PS

Peter Sovietov in Compiler Development
Неплохая мысль. Но не хватает информации о том, где сам указатель лежит. Поэтому:
#*
*#
И я бы еще добавил ? -- когда явно указывать не нужно, пусть компилятор разберется:
?#
*?
И для низкоуровневого программирования хорошо бы описать явно и вариант регистровой памяти. Как насчет ` ?
И тогда можно будет компактно описывать такие случаи, как string`#?**
Но главное, чтобы объявление функции в языке использовало слово "fn", без этого ничего не выйдет.
источник

A

Alex in Compiler Development
Т-34 85
Хороша ли идея разделить в языке, подобном C++ и C, типы указателей на стековые и на хиповые?

например

string stackString;
string# stackStringPointer = &stackString;
string* heapStringPointer = new string;
А если функция принимает указатель и заранее не знает с каким указателем она будет работать? А если компилятор переложит с кучи на стек?
источник

G

Gymmasssorla in Compiler Development
Peter Sovietov
Неплохая мысль. Но не хватает информации о том, где сам указатель лежит. Поэтому:
#*
*#
И я бы еще добавил ? -- когда явно указывать не нужно, пусть компилятор разберется:
?#
*?
И для низкоуровневого программирования хорошо бы описать явно и вариант регистровой памяти. Как насчет ` ?
И тогда можно будет компактно описывать такие случаи, как string`#?**
Но главное, чтобы объявление функции в языке использовало слово "fn", без этого ничего не выйдет.
Я бы ещё добавил квалификатор ^ - означает закешированное значение, а ^N% - с некоторой вероятностью закешированное значение. Такие образом, ^15%#string - с вероятностью 15% закешированное значение из стека типа данных string.
источник

A

Alex in Compiler Development
Gymmasssorla
Я бы ещё добавил квалификатор ^ - означает закешированное значение, а ^N% - с некоторой вероятностью закешированное значение. Такие образом, ^15%#string - с вероятностью 15% закешированное значение из стека типа данных string.
Вы тут смеётесь, а меж тем в gcc есть __builtin_expect_with_probability, в котором указывается вероятность перейти на ветвь.
*а вот указаний для кэширования иногда как раз в языке действительно не хватает
источник

VK

Val Krylov in Compiler Development
Peter Sovietov
Неплохая мысль. Но не хватает информации о том, где сам указатель лежит. Поэтому:
#*
*#
И я бы еще добавил ? -- когда явно указывать не нужно, пусть компилятор разберется:
?#
*?
И для низкоуровневого программирования хорошо бы описать явно и вариант регистровой памяти. Как насчет ` ?
И тогда можно будет компактно описывать такие случаи, как string`#?**
Но главное, чтобы объявление функции в языке использовало слово "fn", без этого ничего не выйдет.
Выглядит слишком hardcoded. Надо ввести пользовательские типы указателей - (OMG#)(WTF?)(LOL!).
источник

PS

Peter Sovietov in Compiler Development
Val Krylov
Выглядит слишком hardcoded. Надо ввести пользовательские типы указателей - (OMG#)(WTF?)(LOL!).
Это слишком по-хакерски. Респектабельный корпоративный вариант использовал бы стандарт URI.
источник