Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Запись вещественных констант

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

1.2, 0.725, 1.,.35, 0.

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

Экспоненциальная форма записи вещественной константы содержит знак, мантиссу и десятичный порядок (экспоненту). Мантисса - это любая положительная вещественная константа в форме с фиксированной точкой или целая константа. Порядок указывает степень числа 10, на которую домножается мантисса. Порядок отделяется от мантиссы буквой "e" (от слова exponent), она может быть прописной или строчной. Порядок может иметь знак плюс или минус, в случае положительного порядка знак плюс можно опускать. Примеры:

1.5e+6 константа эквивалентна 1500000.0

1e-4 константа эквивалентна 0.0001

-.75E3 константа эквивалентна -750.0

 

10. Машинная Арифметика и ошибки вычислений. Типы ошибок при реализации алгоритмов, объяснение возникающих ошибок ограничениями машинной арифметики.

 

11. Понятия транслятор, компилятор, интерпретатор, машинный язык, перемещаемая программа.

 

Транслятор – программа, которая переводит исходную программу на некотором языке программирования в эквивалентную ей объектную форму.

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

Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.

Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.

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

Перемещаемые программы - программы или подпрограммы, которые можно перемещать из одной части ЗУ в другую с соответствующей переадресацией, так что они могут быть выполнены на новом месте.

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

12. Процесс компиляции, структура компилятора, проходы компилятора.

 

Процесс компиляции, структура компилятора.

Этапы компиляции:

1. Процессинг – на этом этапе исходная программа обрабатывается путем подготовки имеющихся заголовочных файлов и макросов.

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

3. Глобальная оптимизация. Внутреннее представление программы неоднократно преобразуется с целью сокращения кода и времени исполнения программы.

4. Генерация кода. Внутреннее представление преобразуется в блоки команд процессора, которое затем преобразуется в ассемблерный код или файлы с объектным кодом.

5. Ассемблирование. Если был сгенерирован ассемблерный текст, то происходит его ________________ и опять объектный файл.

6. Объединение нескольких объектных файлов в исполн файл или динамическую библиотеку.

Наш компилятор имеет "классическую" структуру и состоит из следующих частей.

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

Затем поток лексем попадает в синтаксический анализатор, который превращает этот поток в дерево синтаксического разбора, которое часто называют также программой, записанной в абстрактном синтаксисе, или абстрактной программой.

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

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

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

Проходы компилятора

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

 

13. Классы с самоадресацией. Примеры.

 

14. Связные списки. Описание класса «список». Управление списком, основные функции.

 

15. Стеки. Описание класса «стек». Основные функции управления стеком.

 

16. Очереди. Описание класса «очередь». Основные функции управления.

 

17. Класс дерево. Деревья бинарного поиска. Основные функции управления.


<== предыдущая | следующая ==>
Основные виды психических явлений | Шары для огнестрельного оружия и петарды предоставляются мастерской группой и являются побираемой игровой ценностью !!!

Date: 2016-08-29; view: 345; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию