Занялся давеча генерацией C#, узнал, что этот недоязык не позволяет описать и тут же на месте вызвать лямбду, вроде:
(x => x * 2)(21)
А вывод типов там такой слабенький, что почти и нету; пришлось самому делать.
А скажите, друзья, насколько легко понять, не запуская, что вычисляет этот код?
Thunk fmain = () => run>, Kont>>>(x0 =>
() => run
>,
(
Read more... )
Comments 20
new Func<int, int>(x => x + 2)(21);
Reply
Reply
До такой степени замусоренный явными объявлениями код.
Спасибо, что нет всяких int(3) и minus(a12,b13).
Попробовал разобфускивать руками, да вскоре бросил.
Reply
Reply
Reply
Это просто у тебя говнокод.
Такое можно написать на любом языке, и это никак не характеризует язык.
Reply
Это, если я всё правильно понял, сгенерированный код из некоторого высокоуровневого языка. C# автор использует в качестве ассемблера :)
Reply
Говнокод часто получается в результате декомпиляции, или любой другой автомагической кодогенерации.
Только зачем спрашивать, насколько легко его понять?
Вот например говнокод на JavaScript, который используется в 60% популярных сайтов:
http://code.jquery.com/jquery-1.11.1.min.js
Его легко понять? Нет, очень сложно, даже если отформатировать.
Разве это означает, что JavaScript "недоязык"?
Reply
Думаю, не сделать ли так обфускатор для небольшого фрагмента одного моего проекта. У меня для этих целей была одна простенькая ВМ, так ее энтузиаст один расщелкал (что было совсем несложно, впрочем).
Reply
Leave a comment