Сообщение Re[3]: Как оценить простоту кода? от 11.06.2020 10:41
Изменено 11.06.2020 10:48 L_G
Re[3]: Как оценить простоту кода?
Здравствуйте, kov_serg, Вы писали:
_>При переводе с одного языка на другой язык программа может перестать работать или потерять что-то или получить новые баги.
_>И кто сказал что преобрахование будет однозначным.
_><куча поскипанного>
Тогда это был бы не транспайлер, а плохая, негодная поделка-недоделка.
Имеющиеся в виду "первичные" языки заведомо сложнее и выразительнее "вторичных", а траспайлер должен преобразовывать код так же надежно и однозначно, как это делают обычные компиляторы.
Твои высказывания могут касаться только обратных транспайлеров из моего пункта 5, но они необязательны и вообще весь пункт сильно гипотетический.
_>Вообще есть haxe но он несколько для другого.
Действительно, для другого. haxe может транслироваться в кучу других языков, а для моего "первичного" вполне достаточно только одного "вторичного".
Ближе к моей схеме имеющиеся транспайлеры в C типа Nim -> C или тот же С++ -> C, или транспайлеры в JavaScript — много их.
Возможно, реально было бы сделать такие транспайлеры и для пар типа F# -> C#, Scala -> Java, но я сильно не уверен, что функциональщину удастся выразить в легко читаемом, понятном коде.
Вообще, задача получить на выходе именно простой, читаемый код — достаточно трудна, чтобы пришлось сам "первичный язык" для неё разрабатывать специально с учетом этой трудности.
_>При переводе с одного языка на другой язык программа может перестать работать или потерять что-то или получить новые баги.
_>И кто сказал что преобрахование будет однозначным.
_><куча поскипанного>
Тогда это был бы не транспайлер, а плохая, негодная поделка-недоделка.
Имеющиеся в виду "первичные" языки заведомо сложнее и выразительнее "вторичных", а траспайлер должен преобразовывать код так же надежно и однозначно, как это делают обычные компиляторы.
Твои высказывания могут касаться только обратных транспайлеров из моего пункта 5, но они необязательны и вообще весь пункт сильно гипотетический.
_>Вообще есть haxe но он несколько для другого.
Действительно, для другого. haxe может транслироваться в кучу других языков, а для моего "первичного" вполне достаточно только одного "вторичного".
Ближе к моей схеме имеющиеся транспайлеры в C типа Nim -> C или тот же С++ -> C, или транспайлеры в JavaScript — много их.
Возможно, реально было бы сделать такие транспайлеры и для пар типа F# -> C#, Scala -> Java, но я сильно не уверен, что функциональщину удастся выразить в легко читаемом, понятном коде.
Вообще, задача получить на выходе именно простой, читаемый код — достаточно трудна, чтобы пришлось сам "первичный язык" для неё разрабатывать специально с учетом этой трудности.
Re[3]: Как оценить простоту кода?
Здравствуйте, kov_serg, Вы писали:
_>При переводе с одного языка на другой язык программа может перестать работать или потерять что-то или получить новые баги.
_>И кто сказал что преобрахование будет однозначным.
_><куча поскипанного>
Тогда это был бы не транспайлер, а плохая, негодная поделка-недоделка.
Имеющиеся в виду "первичные" языки заведомо сложнее и выразительнее "вторичных", а траспайлер должен преобразовывать код так же надежно и однозначно, как это делают обычные компиляторы.
Твои высказывания могут касаться только обратных транспайлеров из моего пункта 5, но они необязательны и вообще весь пункт сильно гипотетический.
_>Вообще есть haxe но он несколько для другого.
Действительно, для другого. haxe может транслироваться в кучу других языков, а для моего "первичного" вполне достаточно только одного "вторичного".
Ближе к моей схеме имеющиеся транспайлеры в C типа Nim -> C или тот же С++ -> C, или транспайлеры в JavaScript — много их.
Возможно, реально было бы сделать такие транспайлеры и для пар типа F# -> C#, Scala -> Java, но я сильно не уверен, что функциональщину удастся выразить в легко читаемом, понятном коде.
Вообще, задача получить на выходе именно простой, читаемый код — достаточно трудна, чтобы пришлось сам "первичный язык" для неё разрабатывать специально с учетом этой трудности.
Как вариант, "первичный" может быть не универсальным языком , а заточенным под задачу DSL-ом.
Возможно, это ближе к кодогенератору с набором темплейтов и конфигурацией, выраженной на DSL.
_>При переводе с одного языка на другой язык программа может перестать работать или потерять что-то или получить новые баги.
_>И кто сказал что преобрахование будет однозначным.
_><куча поскипанного>
Тогда это был бы не транспайлер, а плохая, негодная поделка-недоделка.
Имеющиеся в виду "первичные" языки заведомо сложнее и выразительнее "вторичных", а траспайлер должен преобразовывать код так же надежно и однозначно, как это делают обычные компиляторы.
Твои высказывания могут касаться только обратных транспайлеров из моего пункта 5, но они необязательны и вообще весь пункт сильно гипотетический.
_>Вообще есть haxe но он несколько для другого.
Действительно, для другого. haxe может транслироваться в кучу других языков, а для моего "первичного" вполне достаточно только одного "вторичного".
Ближе к моей схеме имеющиеся транспайлеры в C типа Nim -> C или тот же С++ -> C, или транспайлеры в JavaScript — много их.
Возможно, реально было бы сделать такие транспайлеры и для пар типа F# -> C#, Scala -> Java, но я сильно не уверен, что функциональщину удастся выразить в легко читаемом, понятном коде.
Вообще, задача получить на выходе именно простой, читаемый код — достаточно трудна, чтобы пришлось сам "первичный язык" для неё разрабатывать специально с учетом этой трудности.
Как вариант, "первичный" может быть не универсальным языком , а заточенным под задачу DSL-ом.
Возможно, это ближе к кодогенератору с набором темплейтов и конфигурацией, выраженной на DSL.