|
2.2, Аноним (2), 11:41, 29/04/2020 [^] [^^] [^^^] [ответить]
| +6 +/– |
Потому что этот формат называется S-выражения, а Lisp полностью состоит из них
| |
|
3.4, Crazy Alex (ok), 12:07, 29/04/2020 [^] [^^] [^^^] [ответить]
| +21 +/– |
Я давно подозревал, что Lisp надо декомпилировать прежде чем читать ;-)
А если серьёзно - WASM так и разрабатывался, чтобы байткоды были более-менее понятным для человека (в том числе поэтому там AST), и чтобы бинарный и текстовый форматы были полностью эквивалентны. Так что даже странно, что до сих пор подобных инструментов не было.
| |
|
4.11, Аноним (11), 13:47, 29/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
На любом языке можно так написать что потом придётся декомпилировать что бы прочитать, есть даже специальные программы приводящие исходный код к нечитаемому виду.
| |
|
5.14, Crazy Alex (ok), 15:13, 29/04/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Конечно. Но на одних языках надо прилагать некие усилия, чтобы вышло что-то читаемое, на других - наоборот. Впрочем, весь мейнстрим, как водится, здесь посередине.
| |
|
|
|
|
|
|
3.12, Ordu (ok), 14:09, 29/04/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
В лиспе бы порядок аргументов был бы другим (&key аргументы после обязательных), и выглядело бы несколько иначе:
(f32.load (local.get 0) :offset 4)
Но сути это не меняет. Преобразовать из того синтаксиса в lisp'овый можно даже не вдаваясь в заморочные штуки типа reader macro.
| |
|
|
1.7, pin (??), 13:00, 29/04/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Ждем, когда все эти кодонедогенераторы начнут генерировать код в метры кубические.
| |
|
2.8, Аноним (9), 13:20, 29/04/2020 [^] [^^] [^^^] [ответить]
| +5 +/– |
Кодогенераторы кодогенерировали, кодогенерировали, да не выкодогенерировали.
| |
|
1.15, Аноним (15), 16:02, 29/04/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Почему jvm байт-код декомпилируется в абсолютно читаемый и понятный исходный код, а из webassebly получается... ужас какой-то
| |
|
2.22, КО (?), 11:32, 30/04/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Потому, что он декомпилируется в тот же язык, на котором писали. И потому этот язык понятен.
А тут декомпиляция идет в выдуманные языки с которыми почти никто не работает. Поэтому он и не понятен - ибо НЕХ.
| |
2.23, Аноним (23), 13:15, 30/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Потому что jvm взаимодействует с высокоуровневыми джавовскими объектами, а wasm жонглирует байтиками как CPU — на низком уровне.
| |
2.26, Аноним (26), 15:04, 30/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Если в ProGuard включили нужные настройки, то после декомпиляции получится каша.
Так же и с C# всякими.
| |
|
1.18, Вы забыли заполнить поле Name (?), 19:44, 29/04/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> чем текстовое представление WebAssembly в формате ".wat", который ближе к ассемблеру, чем к высокоуровневым языкам
Ну такое себе заявление, натянуто. S-выражения понятнее как мне кажется. Достаточно было заменить
(f32.load (local.get 0)) на какой-нибудь (a), т.к. это первый аргумент.
| |
|
2.20, Аноним (10), 21:25, 29/04/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это замаскированный паскаль. Современные погромисты уже не в состоянии декомпилировать в си, поэтому выбрали паскаль.
| |
|
3.21, Аноним (19), 22:47, 29/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да где там паскаль-то? Тип после имени переменной в миллионе языков. А управление потоком там вообще ни на что не похоже, по сути, два варианта goto ;)
| |
|
|
1.25, Аноним (-), 14:51, 30/04/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
>Например, скомпилированная в wasm исходная Си-функция
>typedef struct { float x, y, z; } vec3;
>a->y * b->y +
Это примеры из языка Си плюс-плюс, это не чистый Си. Автор новости садись, два!
| |
|