Size: a a a

Compiler Development

2020 February 03

KR

K R in Compiler Development
FORTRAN ONE LOVE
Мне нравится. Да и больше из него используем векторизацию
Там человек всю жизнь писал на фортране 77. Почему он два абзаца документации должен писать на более новой версии фортрана? 😊 Это же отдаёт новой школой, а рулит старая. 😊
источник

FO

FORTRAN ONE LOVE in Compiler Development
K R
Там человек всю жизнь писал на фортране 77. Почему он два абзаца документации должен писать на более новой версии фортрана? 😊 Это же отдаёт новой школой, а рулит старая. 😊
Если правильно писать на 90-м, то ошибки находятся гораздо раньше :-)
Да и если что-то чужое цеплять, то в 77 это можно выяснить графом вызовов, а в 90 графом модулей, который проще и короче
источник

KR

K R in Compiler Development
FORTRAN ONE LOVE
Если правильно писать на 90-м, то ошибки находятся гораздо раньше :-)
Да и если что-то чужое цеплять, то в 77 это можно выяснить графом вызовов, а в 90 графом модулей, который проще и короче
Какой граф вызовов? Это документация была в стиле

VAR0 SHOULD BE 0 WHEN N ITER > 100
KX SOULD BE < 0 FOR ....
источник

FO

FORTRAN ONE LOVE in Compiler Development
K R
Какой граф вызовов? Это документация была в стиле

VAR0 SHOULD BE 0 WHEN N ITER > 100
KX SOULD BE < 0 FOR ....
Ну хотя бы такая есть)
источник

KR

K R in Compiler Development
Ну я просто тогда оценил, что "на любом языке можно писать, как на Фортране".
источник

FO

FORTRAN ONE LOVE in Compiler Development
А к хаскелю нельзя прицепить в качестве выходного файла фортрановский код, который потом можно будет сктмпилировать?
источник

KR

K R in Compiler Development
FORTRAN ONE LOVE
А к хаскелю нельзя прицепить в качестве выходного файла фортрановский код, который потом можно будет сктмпилировать?
GHC такого вроде не умеет. А зачем это вам? В Хаскеле значительно хуже с массивами, чем в Фортране. Даже в Клине хуже, хотя там они изменяемые и синтаксического сахару насыпали.
источник

AY

Anton Yudintsev in Compiler Development
Алексей
Есть ещё JS. А точнее его интерпретатор V7 для встраивания.
QuickJS только
источник

AY

Anton Yudintsev in Compiler Development
Constantine
http://wren.io/

Wren is a small, fast, class-based concurrent scripting language.
Think Smalltalk in a Lua-sized package with a dash of Erlang and wrapped up in a familiar, modern syntax.

Это что, убийца Lua🤔
Ему уже года три. Он не очень production ready был три года назад, и вряд ли оно двигается сильно.
источник

AV

Alexander Vershilov in Compiler Development
FORTRAN ONE LOVE
А к хаскелю нельзя прицепить в качестве выходного файла фортрановский код, который потом можно будет сктмпилировать?
Можно через плагины прицепиться к компилятору и на каком-то уровне выдавать фортран. Так делали, например, в clash, чтобы выдавать VHDL. Но задача эта не самая тривиальная и я не уверен, что найдётся команда, которая это хочет и может. Гораздо проще написать edsl, который будет генерировать фортран на выходе. С этим вполне может справиться средняя команда, и обычно так делают с Си, самое крупное такое решение это ivory и cryptol, но мелкие специализированные решения были во многих проектах (у меня минимум в 2 и ещё про несколько знаю)
источник

AV

Alexander Vershilov in Compiler Development
Ещё есть FFI в фортран, если я правильно помню, что тоже может быть вариантом решения для задач. Про top-10, в принципе в Haskell есть режим сборки via-c, выдающий на выходе си код, который можно собирать любым сишным компилятором, можно и этим путём идти
источник

AK

Andrei Kurosh in Compiler Development
Do not trust this software because I honestly have no idea why it works.”

Моя новая любимая фраза
источник

FO

FORTRAN ONE LOVE in Compiler Development
Alexander Vershilov
Ещё есть FFI в фортран, если я правильно помню, что тоже может быть вариантом решения для задач. Про top-10, в принципе в Haskell есть режим сборки via-c, выдающий на выходе си код, который можно собирать любым сишным компилятором, можно и этим путём идти
В принципе С тож пойдет. Главное, чтобы использование памяти оптимизировалось :)
источник

C

Constantine in Compiler Development
Anton Yudintsev
Ему уже года три. Он не очень production ready был три года назад, и вряд ли оно двигается сильно.
Его уже юзают в проде🤔
источник

AV

Alexander Vershilov in Compiler Development
FORTRAN ONE LOVE
В принципе С тож пойдет. Главное, чтобы использование памяти оптимизировалось :)
Оптимизировалось под архитектуру в плане доступа с учетом топологии машины, или оптимизировалось - максимально уменьшалось?
источник

FO

FORTRAN ONE LOVE in Compiler Development
Alexander Vershilov
Оптимизировалось под архитектуру в плане доступа с учетом топологии машины, или оптимизировалось - максимально уменьшалось?
Ну например чтобы лишний раз матрицы не сохраняло в отдельных переменных при их обновлении.
Например, чтобы не было так:
H_updated = 0
H_updated = H + H * dEdR * R
H = H_updated
Ну и лишний раз большие матрицы не транспонировало: это очень дорого по памяти
источник

AV

Alexander Vershilov in Compiler Development
Ого, в фортране последнее на уровне компилятора?
источник

FO

FORTRAN ONE LOVE in Compiler Development
Alexander Vershilov
Ого, в фортране последнее на уровне компилятора?
*на уровне стандарта языка
источник

FO

FORTRAN ONE LOVE in Compiler Development
Но капец дорогое по памяти
источник

FO

FORTRAN ONE LOVE in Compiler Development
В имплементации GCC, по крайней мере
источник