«В ассемблерах универсальные математические обозначения не прижились, несмотря на высокую интуитивность их восприятия.»
И это неспроста. Есть тому причина. И она заключается в неединственности отображения математической операции на машинную команду.
«Было бы разумным отступить от правила ассемблеров «одна строка – одна команда». Запись нескольких команд в одной строке дала бы в некоторых случаях большую компактность кода и большую его читаемость.»
Так и до Си недалеко...
«Согласно легенде в своё время в недрах фирмы IBM действовало негласное правило: программный модуль должен целиком помещаться на экране монитора (в то время мониторы имели 25х80 знакомест)»
Не негласное, а неписанное.
«Таблица 1. Список команд языка ассемблера с упрощённым синтаксисом.»
...
«Перечисленный перечень не охватывает всей системы команд процессора х86. Но он предлагает самые очевидные замены, которые, за некоторым исключением, не придётся заучивать. При этом именно эти команды чаще всего встречаются в тексте программ. Можно даже дать приблизительную оценку: такое команды будут занимать 80-90% текста. Однако дальнейшее стремление заменить буквенные обозначения команд специальными символами может привести потере интуитивного восприятия. Поэтому традиционные буквенные обозначения следует сохранить, при этом для всех команд. В том числе для тех, для которых есть замена из вышеприведённой таблицы 1.»
«В связи с тем, что одиночные пробелы используются в идентификаторах (смотри п. 2.1.4), то они не могут использоваться в качестве разделителей. Поэтому в качестве разделителей используется последовательность из двух и более пробелов, а так же символы табуляции и запятые – как обычно.»
«алфавит расширен за счёт символов кириллицы, а так же сделано возможным употреблять внутри идентификаторов одиночные пробелы.»
«Запись шестнадцатеричных констант с префиксом «16'» хотя и немного длиннее, но интуитивно понятнее»
буквы переведены транслитерацией (и это не круто)
«Внутри двоичных литералов двоичные цифры ... могут отделяться друг от друга одиночными пробелами.»
«Помимо цифр «0» и «1», могут быть употреблены строчные буквы «о» (латинская и русская). Это так же улучшает визуальное восприятие»
увеличивает вычурность и фриковатость
«вместо директив «DB», «DW», «DD», «DQ» и «DT» использованы директивы «_8», «_16», «_32», «_64» и «_80», смысл которых очевиден сразу и не нуждается в уточнениях.»
У меня была мысль заключать типы в квадратные скобки (чтобы не путалось с пробелами).
[80 бит] 2'01010101
«Нулевая строка _8 40 раз 0 \\ 40 нулевых байтов»
40 раз [8 бит] 0
«Сообщение _8 'Текст внутри двойных кавычек', 0
Сообщение _8 "Текст внутри двойных кавычек "»
Двойные кавычки добавляют в конец ноль. Но что тут с кодировками, особенно для русских букв? Это UTF-8 или нет?
«символ «/» обозначает деление (DIV), а символы «//» обозначают деление со знаком (IDIV). поэтому однострочные комментарии начинаются с \\»
«два режима работы транслятора. В первом режиме исходный код просто копируется в выходной текст. Во втором производится анализ исходного кода и генерация на его основе выходного кода. Для перевода из одного режима в другой в исходном коде используются специальные последовательности символов: «((-» для перевода из режима копирования в режим анализа исходного текста и «-))»»
«Метод рекурсивного спуска ... объём синтаксических правил разрабатываемого языка ассемблера невелик, поэтому применение метода рекурсивного спуска вполне оправдано»
Вообще оправданность его определяется отсутствием правоассоциативных операций (типа возведения в степень).
«Для реализации данной программы-транслятора использован язык C++, компилятор Visual Studio C++. Однако текст программы написан не на чистом C++, а на его русифицированном варианте.»
«разработанный транслятор может применяться и самым широким кругом разработчиков для платформы на базе микропроцессоров Intel x86.»
Уже не может. Он 32-х битный, а техника ушла вперёд. И операционка под которую он собран, покинула территорию необъятной.
«Ассемблер masm производства Microsoft Corporation позволяет программировать с использованием символов UNICODE и, значит, на кириллице.»
«гибкий (в некоторых пределах) синтаксис: его правила описаны в файлах типа CSV (редактируемых простым текстовым редактором) и могут легко дополнены, заменены или откорректированы.»
Это называется, не переписали на кириллицу Lex & Yacc, потому что не осилили LALR.
«ожидается его использование на коммерческом предприятии г. Москва.»
Уверен, что единственный заинтересованный сотрудник оттуда уже уволился, и разработка не прижилась.
Отредактировано Лис (2023-04-15 15:22:07)