Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 1 Рубеж.docx
Скачиваний:
10
Добавлен:
03.08.2019
Размер:
52.98 Кб
Скачать

9.Что такое машинный код?

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

Язык самой машины – машинный код – очевиден и однозначен для каждого вида компьютеров. Но эта последовательность нулей и единиц противоестественна для памяти человека, хотя несколько поколений программистов работали только в машинных кодах. Программа может состоять из миллионов комбинаций единиц и нулей, и ошибка лишь в одном знаке приведет к неправильной работе всей программы. При всех различиях языков программирования все они, в конечном счете, сводятся к языкам высокого и низкого уровня. «Низкий» не значит «плохой». Операторы такого языка близки к машинному коду. К ним относятся языки ассемблера, в которых двоичные последовательности были заменены символами (мнемониками). Первым таким языком был ассемблер компьютера «Эдсак», созданный в 1949 г. английским математиком М. Уилксом. Разумеется, ассемблеры проще машинных кодов, в них можно создавать инструкции для определенных действий. Однако применение ассемблера оставляет нерешенными ряд задач:

-во-первых, программирование на языке ассемблера требует хорошего знания архитектуры машины, на которой программа будет выполняться. Это значительно сужает круг потенциальных разработчиков программного обеспечения. Например, для разработки программного обеспечения для решения экономических задач программист должен одинаково хорошо разбираться как в предметной области, так и в архитектуре компьютера; наладить совместную работу двух разных людей, каждый из которых является специалистом в одном из этих вопросов, значительно сложнее;

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

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

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

11.Что такое транслятор

Ограниченность ассемблеров была преодолена в языках высокого уровня. Первым распространенным языком высокого уровня явился Фортран, разработанный в 1954-1957 гг. Дж. Бекусом в фирме IBM и до сих пор применяемый для научных расчетов. Поскольку его применение занимало много времени «тихоходных» в то время машин, для него был создан компилятор, переводивший его программы в машинный код. Это положило начало особым видам программ – трансляторам, которые для каждого типа компьютеров переводят программы, написанные на языке высокого уровня, в их машинный код.

Трансляторы бывают двух видов – компиляторы и интерпретаторы

Компилятор транслирует в ходе непрерывного процесса всю программу, написанную на языке высокого уровня. При том создается полная программа в машинных кодах, которую затем ЭВМ выполняет без участия компилятора

Интерпретатор последовательно анализирует по одному оператору программы, превращая при этом каждую синтаксическую конструкцию, записанную на языке высокого уровня, в машинные коды и выполняя их одна за другой. Интерпретатор должен постоянно присутствовать в зоне основной памяти вместе с интерпретируемой программой, что требует значительных объемов памяти. Следует заметить, что любой язык программирования может быть как интерпретируемым, так и компилируемым, но в большинстве случаев у каждого языка есть свой предпочтительный способ реализации. Языки Фортран, Паскаль в основном компилируют; язык Ассемблер почти всегда интерпретирует; языки Бейсик и Лисп широко используют оба способа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]