Цитата:
А) Откуда повышенная сложность программирования? Чем она сложнее, чем 30 лет назад?
Б) И о чём же транслятор ассемблера должен думать?
//SII 1.12.2007, 02:53
Это я про сам Ассемблер, в том смысле, что программы на нём сложнее любого другого ЯП. Хоть 30 лет назад, хоть сейчас.
В идеале, из синтаксиса языка должно быть ясно видно (как программисту так и компилятору), что именно в конечном итоге вычисляется. В данном же виде строения программ, результатом работы каждой команды является лишь какие-то изменения каких-то регистров. Программист должен постоянно анализировать взаимосвязь изменений регистров, чтобы представить, что же в конечном итоге получится. При указании типа конечного результата, компилятор может проследить ход вычислений, и выявить например логическую целостность результата (например тип позврата процедуры dword, а код вычисляет и возвращает только byte, оставляя старшие биты неопределёнными), или например перед командой "div ebx" регистры eax и ebx содержат dword числа, а edx содержит float, ptr или null (т.е. ни какой явной загрузки значения в регистр не было), получится что называется type mismatch.