Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольные вопросы ТЯП.doc
Скачиваний:
6
Добавлен:
13.09.2019
Размер:
292.35 Кб
Скачать
  1. Язык Ассемблер

Assembler — язык программирования низкого уровня, представляющий собой формат записи машинных команд, удобный для восприятия человеком.

Команды языка ассемблера один в один соответствуют командам процессора и, фактически, представляют собой удобную символьную форму записи (мнемокод) команд и их аргументов. Также язык ассемблера обеспечивает базовые программные абстракции: связывание частей программы и данных через метки с символьными именами и директивы.

Достоинства и недостатки:

  • минимальное количество избыточного кода (использование меньшего количества команд и обращений в память). Как следствие — большая скорость и меньший размер программы

  • большие объемы кода, большое число дополнительных мелких задач

  • плохая читабельность кода, трудность поддержки (отладка, добавление возможностей)

  • трудность реализации парадигм программирования и любых других сколько-нибудь сложных конвенций, сложность совместной разработки

  • меньшее количество доступных библиотек, их малая совместимость

  • непосредственный доступ к аппаратуре: портам ввода-вывода, особым регистрам процессора

  • возможность написания самомодифицирующегося кода

  • максимальная «подгонка» для нужной платформы (использование специальных инструкций, технических особенностей «железа»)

  • непереносимость на другие платформы (кроме двоично совместимых).

Синтаксис: Общепринятого стандарта для синтаксиса языков ассемблера не существует. Однако, существуют стандарты де-факто — традиционные подходы, которых придерживаются большинство разработчиков языков ассемблера. Основными такими стандартами являются Intel-синтаксис и AT&T-синтаксис.

Общий формат записи инструкций одинаков для обоих стандартов:

`[метка:] опкод [операнды] [;комментарий]`

Опкод — непосредственно мнемоника инструкции процессору. К ней могут быть добавлены префиксы (повторения, изменения типа адресации и пр.). В качестве операндов могут выступать константы, названия регистров, адреса в оперативной памяти и пр.. Различия между стандартами Intel и AT&T касаются, в основном, порядка перечисления операндов и их синтаксиса при различных методах адресации.

Директивы: Кроме инструкций, программа может содержать директивы: команды, не переводящиеся непосредственно в машинные инструкции, а управляющие работой компилятора. В качестве набора директив можно выделить:

  • определение данных (констант и переменных)

  • управление организацией программы в памяти и параметрами выходного файла

  • задание режима работы компилятора

  • всевозможные абстракции (т.е. элементы языков высокого уровня) — от оформления процедур и функций (для упрощения реализации парадигмы процедурного программирования) до условных конструкций и циклов (для парадигмы структурного программирования)

  • макросы

Происхождение и критика термина «язык ассемблера»: Данный тип языков получил свое название от названия транслятора (компилятора) с этих языков — ассемблера (англ. assembler — сборщик).

  1. Язык Паскаль

Язык Паскаль был разработан в 1970 г. Никлаусом Виртом как язык, обеспечивающий строгую типизацию и интуитивно понятный синтаксис. Он был назван в честь французского математика, физика и философа Блеза Паскаля.

Одной из целей создания языка Паскаль Никлаус Вирт считал обучение студентов структурному программированию. До сих пор Паскаль заслуженно считается одним из лучших языков для начального обучения программированию. Его современные модификации, такие как Object Pascal, широко используются в промышленном программировании (среда Delphi).

Наиболее популярным решением для персональных компьютеров в 80-е - начале 90 годов стал компилятор и интегрированная среда разработки Turbo Pascal фирмы Borland. Встроенный компилятор обеспечивал высокую скорость компиляции и высокое качество кода (отсюда приставка Turbo). Среда Turbo Pascal обеспечивала также отладку кода, содержала богатый набор примеров. Все эти качества позволили Turbo Pascal стать стандартом Паскаля де-факто.

Программа на языке Паскаль состоит из "заголовка" и "тела" программы, называемым блоком. В "заголовке" программы даётся имя и перечисляются её параметры (если это необходимо). Блок состоит из шести разделов, причем любой из них, кроме последнего, может быть пустым (т.е. отсутствовать). В определении блока разделы должны следовать в таком порядке: описание меток, определение констант, определение типов, описание переменных, описание процедур и функций, операторы.