В аналитической части данного курсового проекта необходимо провести аналитический обзор двоичной, восьмеричной и шестнадцатеричной систем счисления и правил перевода десятичных чисел в них и обратно, а также рассмотреть форматы хранения чисел с плавающей точкой. Для примера требуется взять числа из второй части курсового проекта. Знание этих тем необходимо для выполнения практической части, т.к. в Эмулятор микро-ЭВМ используется шестнадцатеричная система счисления, а задание требует сформировать число с плавающей точкой
В практической части необходимо составить программу преобразовывающую массив констант в формат числа с плавающей точкой на Эмуляторе микро-ЭВМ СМ-1800. Программа должна корректно работать для любого массива заданных констант
Аналитическая часть
Представление целых чисел в формате с фиксированной запятой
Множество целых чисел, представимых в памяти ЭВМ, ограничено. Диапазон значений зависит от размера ячеек памяти, используемых для их хранения.
06. Низкоуровневое программирование. Ассемблер. Пример программы. [Универсальный программист]
Так в n-разрядной ячейке может храниться 2 n различных значений целых чисел. Так в 8-разрядной ячейке может храниться 2 8 =256 различных значений, в 16-разрядной — 2 16 =65536 различных значений.
Целые числа могут представляться в компьютере без знака и со знаком.
Целые числа без знака. Обычно занимают в памяти компьютера один или два байта. Максимальное значение целого числа без знака (положительного числа) достигается в случае, когда во всех ячейках хранятся единицы.
Для n-разрядного представления оно будет равно . Для 8-разрядной ячейки максимальное значение целого положительного числа достигается в случае, когда во всех ячейках хранятся единицы и равно . Минимальное число соответствует восьми нулям, хранящимся в восьми битах ячейки памяти, и равно нулю. Следовательно, в 8-разрядной ячейке диапазон изменения целых чисел без знака: от 0 до 255. В 16-разрядной ячейке — от 0 до 65535 (всего 65536 значений).
Так, число 111000012 будет храниться в 8-разрядной ячейке памяти следующим образом:
Источник: studentopedia.ru
49283 (Трансляция, компиляция, интерпретация, линкование)
Документ из архива «Трансляция, компиляция, интерпретация, линкование», который расположен в категории » «. Всё это находится в предмете «информатика» из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе «курсовые/домашние работы», в предмете «информатика, программирование» в общих файлах.
Онлайн просмотр документа «49283»
Текст из документа «49283»
- трансляция исходного текста программы;
- компоновка программы;
- выполнение программы с целью определения логических ошибок;
- тестирование программы
Трансляция, компиляция, интерпретация, линкование
Классификация языков программирования по поколениям и уровням. Что такое машинный код и ассемблер
1. Трансляция. Компиляция. Интерпретация
Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой. При трансляции выполняется перевод программы, понятной человеку, на язык, понятный компьютеру. Выполняется специальными программными средствами (транслятором).
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются. Если цель трансляции – преобразование всего исходного текста на внутренний язык компьютера (т.е. получение некоторого нового кода) и только, то такая трансляция называется также компиляцией.
Исходный текст называется также исходной программой или исходным модулем, а результат компиляции – объектным кодом или объектным модулем. Если же трансляции подвергаются отдельные операторы исходных текстов и при этом полученные коды сразу выполняются, такая трансляция называется интерпретацией. Поскольку трансляция выполняется специальными программными средствами (трансляторами), последние носят название компилятора или интерпретатора, соответственно.
Цель трансляции — преобразовать текст с одного языка на другой, который понятен адресату текста. В случае программ-трансляторов, адресатом является техническое устройство (процессор) или программа-интерпретатор.
Трансляторы подразделяют на:
- Адресный. Функциональное устройство, преобразующее виртуальный адрес в реальный адрес
- Диалоговый. Обеспечивает использование языка программирования в режиме разделения времени.
- Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.
- Обратный. То же, что детранслятор (декомпилятор, дизассемблер).
- Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.
- Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле.
- Синтаксически-ориентированный (синтаксически-управляемый). Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием.
- Тестовый. Набор макрокоманд языка ассемблера, позволяющих задавать различные отладочные процедуры в программах, составленных на языке ассемблера
Компиляция — преобразование программой-компилятором исходного текста программы, написанного на языке высокого уровня в машинный язык, в язык, близкий к машинному, или в объектный модуль. Результатом компиляции является объектный файл с необходимыми внешними ссылками для компоновщика.
Компилятор читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
- Пакетная. Компиляция нескольких исходных модулей в одном пункте задания.
- Построчная. То же, что и интерпретация.
- Условная. Компиляция, при которой транслируемый текст зависит от условий, заданных в исходной программе. Так, в зависимости от значения некоторой константы, можно включать или выключать трансляцию части текста программы.
Рисунок 1. Компиляция размеченного документа
Интерпретация — процесс непосредственного покомандного выполнения программы без предварительной компиляции, «на лету»; в большинстве случаев интерпретация намного медленнее работы уже скомпилированной программы, но не требует затрат на компиляцию, что в случае небольших программ может повышать общую производительность.
Простой интерпретатор анализирует и тут же выполняет (собственно интерпретация) программу покомандно (или построчно), по мере поступления её исходного кода на вход интерпретатора. Его достоинство — мгновенная реакция. Недостаток — такой интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды (или строки) с ошибкой.
Интерпретатор компилирующего типа — это система из компилятора, переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код, и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая виртуальная машина). Его достоинство – большее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе). Недостатки — большее требование к ресурсам и требование на корректность исходного кода.
Алгоритм работы простого интерпретатора
- прочитать инструкцию;
- проанализировать инструкцию и определить соответствующие действия;
- выполнить соответствующие действия;
- если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2.
Рисунок 2. Схема интерпретации текста Ю. Лотмана
2. Линкование
Линкование (компоновка) — это процесс, при котором все «недокомпилированные» части программы доводятся до конца и связываются между собой в исполняемый файл (или файлы) формата, понятного данной операционной системе. В итоге, мы получаем исполняемую программу.
Линкование важно, так как при разработке больших проектов код обычно вырастает настолько, что приходится его для повышения надежности раскидывать по разным файлам.
Для связывания модулей компоновщик использует таблицы имён, созданные компилятором в каждом из объектных модулей. Такие имена могут быть двух типов:
- Определённые или экспортируемые имена — функции и переменные, определённые в данном модуле и предоставляемые для использования другим модулям
- Неопределённые или импортируемые имена — функции и переменные, на которые ссылается модуль, но не определяет их внутри себя
Работа компоновщика заключается в том, чтобы в каждом модуле разрешить ссылки на неопределённые имена. Для каждого импортируемого имени находится его определение в других модулях, упоминание имени заменяется на его адрес.

Рисунок 3. Наглядная схема линкования
Существует два способа создания линкования:

Рисунок 4. Схема «Кольцо»
Рисунок 5. Схема «Елочка»
Упрощая, можно сказать, что при компилировании перевод программы в понятную для машины форму осуществляется сразу же после её создания. То есть из исходного текста на языке высокого уровня получается машинный код, пригодный для исполнения на данном процессоре. Если необходимо выполнить программу на другом типе процессора с несовместимой системой команд, то необходима перекомпиляция исходной программы на языке высокого уровня для данного типа процессора.
Программа же на интерпретируемом языке транслируется в машинные коды лишь при её выполнении. Делается это, по мере поступления команд, следующим образом. Каждой команде интерпретируемого языка в коде интерпретатора соответствует подпрограмма, созданная с использованием поддерживаемых аппаратной частью компьютера средств.
Когда эта команда встречается в коде, связанная с ней подпрограмма запускается, и необходимые действия выполняются. Так как особенности реализации интерпретируемых языков скрыты, кажется, что имеющиеся в них команды проделываются напрямую компьютером. Поэтому соответствующие интерпретаторы называют виртуальными компьютерами (или, чаще, виртуальными машинами). Для переноса программы на другую аппаратную базу (другой процессор) необходимо лишь наличие интерпретатора данного языка программирования для данного типа процессора.
Используемая литература
- Роберт У. Себеста. Основные концепции языков программирования
- Вольфенгаген В. Э. Конструкции языков программирования.
Источник: studizba.com
Преобразование всей программы в машинные коды









Алгоритмизация и программирование. Языки программирования высокого уровня. Технологии программирования Пятый раздел (ДЕ №5) Тема: Этапы решения задач на компьютерах. Трансляция, компиляция и интерпретация Задача: Преобразование всей программы, представленной на.
Transcript Алгоритмизация и программирование. Языки программирования высокого уровня. Технологии программирования Пятый раздел (ДЕ №5) Тема: Этапы решения задач на компьютерах. Трансляция, компиляция и интерпретация Задача: Преобразование всей программы, представленной на.
Алгоритмизация и программирование. Языки программирования высокого уровня. Технологии программирования Пятый раздел (ДЕ №5) Тема: Этапы решения задач на компьютерах.
Трансляция, компиляция и интерпретация Задача: Преобразование всей программы, представленной на одном из языков программирования, в машинные коды называется … Варианты ответа: компиляцией компоновкой кодированием ВЫБЕРИТЕ ВАРИАНТ шифрованием Решение: Компиляция – это процесс преобразования всего исходного кода программы в так называемый машинный код, то есть набор команд, непосредственно понятных процессору. Интерпретация – процесс непосредственного покомандного преобразования и выполнения программы без предварительной компиляции всей программы.
Компоновка программы – это один из этапов создания исполняемого файла. Генерация кода – это преобразование элементарных действий, полученных в результате лексического, синтаксического и семантического анализа программы, в некоторое внутреннее представление. Тема: Этапы решения задач на компьютерах.
Трансляция, компиляция и интерпретация Задача: Этап решения задачи на компьютере, включающий в себя выбор языка программирования, уточнение способов организации данных, запись алгоритма на выбранном языке программирования, называется … Варианты ответа: программированием интерпретацией ВЫБЕРИТЕ ВАРИАНТ отладкой генерацией Решение: Одним из этапов решения задач на компьютере является программирование. Данный этап включает в себя: 1) выбор языка программирования; 2) уточнение способов организации данных; 3) запись алгоритма на выбранном языке программирования.
Тема: Этапы решения задач на компьютерах. Трансляция, компиляция и интерпретация Задача: Решение задач на компьютерах состоит из ряда этапов.
После этапа «Постановка задачи» следует этап … Варианты ответа: «Анализ задачи и моделирование» «Программирование» ВЫБЕРИТЕ ВАРИАНТ «Тестирование и отладка» «Разработка алгоритма» Решение: Этапы решения задач на компьютере представляют следующую последовательность: 1. Постановка задачи 2. Анализ задачи и моделирование 3. Разработка алгоритма 4. Программирование 5. Тестирование и отладка 6. Анализ результатов 7. Сопровождение программы Понятие алгоритма и его свойства. Способы записи алгоритма.
Блок-схема алгоритма Задача: Имеется фрагмент блок-схемы алгоритма: . Этой блок-схеме соответствует словесное описание … Варианты ответа: если Y больше нуля, то обнулить A. Обнулить B. Обнулить C если Y больше нуля, то обнулить A и обнулить B. Обнулить C если Y больше нуля, то обнулить A и обнулить B и обнулить C если Y больше нуля, то обнулить A, иначе обнулить B и обнулить C ВЫБЕРИТЕ ОТВЕТ Решение: Если условие истинно («Y больше нуля»), то выполняется действие «Обнулить A». Действия «Обнулить B» и «Обнулить C» отношения к ветвлению не имеют, выполняясь в любом случае.
Указанной блок-схеме соответствует описание из трех предложений: «Если Y больше нуля, то обнулить A. Обнулить B. Обнулить C.». Понятие алгоритма и его свойства. Способы записи алгоритма.
Блок-схема алгоритма Задача: . Имеется словесное описание алгоритма: «До тех пор пока Y не станет больше нуля, то изменить Y. Изменить S» Решение: Тело цикла (действие «Изменить Y») выполняется, до ВЫБЕРИТЕ ОТВЕТ тех пор, пока Y не станет больше нуля (то есть пока условие «Y больше нуля» ложно, переход по ветви «Нет»). Действие «Изменить S» выполняется один раз после завершения цикла.
Указанному словесному описанию соответствует блок схема: Эволюция, и классификация и основные понятия языков программирования Задача: В переменную Y помещается значение: Y := A / B * C – С; Если А = 24, В = 3 и С = 4, то в переменной Y получится число … Варианты ответа: 28 ВЫБЕРИТЕ ОТВЕТ 3 -2 8 Решение: Операции умножения и деления выполняются слева направо, поэтому сначала выполнится деление: A / B = 24 / 3 = 8, затем полученный результат умножается на С: 8 * 4 = 32, и наконец, выполняется вычитание 32 – 4 = 28. Эволюция, и классификация и основные понятия языков программирования Языком программирования высокого уровня для разработки операционных систем, трансляторов, баз данных и других системных и прикладных программ, является … Си Алгол ВЫБЕРИТЕ ОТВЕТ РНР Бэйсик Решение: Язык Си является универсальным языком программирования, его называют языком системного программирования, так как он удобен для написания операционных систем, он может использоваться для написания любых больших вычислительных программ, программ для обработки текстов и баз данных.
Один из первых языков программирования Алгол применялся при составлении программ для решения научно-технических задач на ЭВМ. Бейсик – универсальный код символических инструкций для начинающих, предназначался для обучения программированию, получил широкое распространение на начальных этапах распространения персональных ЭВМ. PHP (англ.
PHP: Hypertext Preprocessor) – скриптовый язык программирования общего назначения, интенсивно применяемый для разработки Web-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических Web-сайтов.
Эволюция, и классификация и основные понятия языков программирования Функция SQR(X) возвращает квадрат значения Х. Если выражение в операторе присваивания Y := sqr(A + B) – C записать без использования функции SQR, то получится … Варианты ответа: Задача: Y := (A + B) * (A + B) – C Y := (A + B) * A + B – C ВЫБЕРИТЕ ОТВЕТ Y := A + B * A + B – C Y := A * A + B * B – C Решение: Функция SQR(X) возвращает Х в квадрате, то есть Х * Х. Выражение «sqr(A + B)» преобразуется в «(A + B) * (A + B)», выражение «sqr(A + B) – C» аналогично преобразуется в «(A + B) * (A + B) – C». Алгоритмы разветвляющейся структуры Задача: . Имеется фрагмент схемы алгоритма: Перед выполнением были введены значения A = 11, B = 19 и С = 19.
В результате выполнения алгоритма значение переменной М будет равно … 20 12 19 Решение: Ход выполнения алгоритма можно оформить в виде таблицы: 10 ВЫБЕРИТЕ ОТВЕТ . В результате выполнения алгоритма значение переменной М будет равно 20. Алгоритмы циклической структуры Задача: Имеется фрагмент схемы алгоритма: Значение переменной M после его выполнения будет равно … . 43 32 . 22 34 Решение: Ход выполнения алгоритма можно оформить в виде таблицы: .В результате выполнения алгоритма значение переменной М будет равно 43.
ВЫБЕРИТЕ ОТВЕТ Алгоритмы циклической структуры Задача: . Имеется фрагмент схемы алгоритма: Значение переменной А после его выполнения будет равно … . 10 8 . Решение: Ход выполнения алгоритма можно оформить в виде таблицы: 18 6 ВЫБЕРИТЕ ОТВЕТ .В результате выполнения алгоритма значение переменной А будет равно 10. Тема: Объектно-ориентированное программирование Задача: В объектно-ориентированном программировании определенный пользователем тип данных, который обладает внутренними данными и методами для работы с ними в форме процедур или функций, называется … Варианты ответа: классом атрибутом ВЫБЕРИТЕ ОТВЕТ полем свойством Решение: Класс и объект – наиболее используемые термины ООП.
Класс – определенный пользователем тип данных, который обладает внутренними данными и методами в форме процедур или функций и обычно описывает родовые признаки и способы поведения ряда очень похожих объектов. Тема: Объектно-ориентированное программирование Событиями в объектно-ориентированном программировании называются … Варианты ответа: Задача: уведомления, получаемые или передаваемые объектом другим объектам или приложениям отдельные методы в форме процедур способы поведения объектов атрибуты ВЫБЕРИТЕ ОТВЕТ Решение: Классы в объектно-ориентированном программировании состоят из полей, свойств, методов и событий.
События – это уведомления, получаемые или передаваемые объектом другим объектам или приложениям. События позволяют объектам выполнять действия при каждом вхождении.
Тема: Объектно-ориентированное программирование Задача: Объектом объектно-ориентированного программирования называется … Варианты ответа: совокупность переменных состояния и связанных с ними методов (операций) группа данных и методов (функций) для работы с этими данными функция или процедура, выполняющие определенные действия характеристика, назначенная элементу класса ВЫБЕРИТЕ ОТВЕТ Решение: Класс и объект – наиболее используемые термины объектноориентированного программирования (ООП). Объект ООП – это совокупность переменных состояния и связанных с ними методов (операций), которые определяют, как объект взаимодействует с окружающим миром.
Объект состоит из следующих трех частей: имя объекта, состояние (переменные состояния), методы (операции). Тема: Объектно-ориентированное программирование Свойство различных объектов в объектно-ориентированном программировании выполнять одно и то же действие разными способами называется … Варианты ответа: полиморфизмом вариантностью мультидействием ВЫБЕРИТЕ ОТВЕТ free command Решение: Одним из основополагающих принципов объектно-ориентированного программирования является полиморфизм. Полиморфизм представляет собой свойство различных объектов выполнять одно и то же действие разными способами. Например, задать шрифтовое оформление окна разрабатываемого приложения можно различными способами.
Источник: slideum.com