Size: a a a

2019 January 31

PZ

Pavel Zhdanovich in .NET CIL Chat
Там аж с точностью до пробелов.
источник

AK

Andrei Kurosh in .NET CIL Chat
так себе вариант по нескольким причинам
источник

AK

Andrei Kurosh in .NET CIL Chat
во-первых, в твоем языке могут быть конструкции, которых нет в сишарпе
источник

AK

Andrei Kurosh in .NET CIL Chat
и тебе придется делать сначала собственное дерево, а потом транслировать его в эквивалентное дерево рослина
источник

AK

Andrei Kurosh in .NET CIL Chat
во-вторых, для учебного развлекательного языка тебе множество возможностей рослина нафиг не сдались
источник

AK

Andrei Kurosh in .NET CIL Chat
бэкенд компилятора обычно самая простая вещь, а основную массу гемора ты поимеешь на этапе преобразований дерева
источник

AK

Andrei Kurosh in .NET CIL Chat
например, как транслировать yield return в стейт-машину
источник

н

невидимка in .NET CIL Chat
Andrei Kurosh
например, как транслировать yield return в стейт-машину
мне кажется ему бы сначала осилить простые чистые функции компилить
источник

PZ

Pavel Zhdanovich in .NET CIL Chat
Вот и я про то же.
источник

AK

Andrei Kurosh in .NET CIL Chat
Pavel Zhdanovich
Вот и я про то же.
ну ты сначала определись, что за язык ты хочешь сделать
источник

AK

Andrei Kurosh in .NET CIL Chat
если это язык а-ля калькулятор выражений a + 1 / 2 то тут тебе сделать с нуля будет сильно проще чем пытаться натянуть это на Roslyn или какой либо другой бэкенд
источник

AK

Andrei Kurosh in .NET CIL Chat
можешь вообще транслировать твое дерево в Expression и поручить компиляцию ему )
источник

PZ

Pavel Zhdanovich in .NET CIL Chat
Сделать язык с большим количеством контрактности, что бы это не значило. На пример аннотации на методы, типа pure, noexception.
источник

н

невидимка in .NET CIL Chat
Andrei Kurosh
можешь вообще транслировать твое дерево в Expression и поручить компиляцию ему )
для выражений типа a + 1 / 2 даже генератор x86 несложно будет сделать
источник

н

невидимка in .NET CIL Chat
(даже при нолевом знании асма)
источник

AK

Andrei Kurosh in .NET CIL Chat
Pavel Zhdanovich
Сделать язык с большим количеством контрактности, что бы это не значило. На пример аннотации на методы, типа pure, noexception.
а ты уверен, что тебе для этого нужен язык? помечать методы атрибутами можно и в сишарпе, а потом написать обработчик для Fody, который будет обрабатывать твою сборку после билда и проверять что все ок
источник

PZ

Pavel Zhdanovich in .NET CIL Chat
Andrei Kurosh
а ты уверен, что тебе для этого нужен язык? помечать методы атрибутами можно и в сишарпе, а потом написать обработчик для Fody, который будет обрабатывать твою сборку после билда и проверять что все ок
В идеале идея, делать что например методы типа pure noexception, могут быть скомпилены через llvm в натив со всеми оптимизациями, а код требующий рантайма в IL.
источник

PZ

Pavel Zhdanovich in .NET CIL Chat
Идей много, но надо как-то быстро организовать площадку для коворяния, что бы не забить.
источник

AK

Andrei Kurosh in .NET CIL Chat
ты можешь писать такие методы на Си и подключать к проекту через p/invoke
источник

PZ

Pavel Zhdanovich in .NET CIL Chat
Да, я прекрасно это знаю.
источник