Кодировки национальных символов
Кодировки национальных символов.
ASCII-7 – американский стандартный код для информационного обмена. Включает в себя символы английского алфавита, цифры, знаки препинания, служенные символы (0…127). Не включает в себя символы национальных алфавитов.
ASCII–8 (0…255). Первые 128 символов сохранилась от ASCII – 7, были символы национальных алфавитов, базирующихся на латинице и символы псевдографики.
KOI–7 (0…127). Недостатки – отсутствие строчных букв. Символы русского языка расположены не по порядку. Достоинства – частичная совместимость с ASCII – 7.
KOI –8 (0…255). № 878. Во второй половине таблицы содержал вместо национальных символов латиницы полный набор символы Кириллицы, а в первой совпадал с ASCII – 7. Недостатки – отсутствие совместимости с KOI -7, символы Кириллицы расположены не в алфавитном порядке, расположение символов псевдографики не совпадающее с ASCII – 8.
GOST (0…255). № 915. Достоинства – русские символы были упорядочены по алфавиту. Недостатки – расположение символов псевдографики не совпадало с ASCII – 8, буква «Ё» стояла отдельно от алфавита.
DOS-ALT (0…255). №866. Достоинства – расположение символов псевдографики совпадает в ASCII-8. Недостатки – буквы кириллицы по возрастанию, но не по порядку.
Win-KYR (0…255). №1251. Которая не совпадала ни с одной из созданных.
Последовательность компиляции
Рекомендуемые материалы
1.Текст программы преобразуется процессором.
На этом этапе обрабатываются все директивы условной компиляции. Вычисляются и постанавливаются константы, при наличии в проекте заголовочных файлов вносится информация из них. На выходе этого этапа текст программы в котором отсутствуют директивы условной компиляции. Вместо константы внесены их значения, вся информация необходимая для компиляции собрана воедино.
2.Обработка программы компилятором.
При этом подставленный на 1 мало исходный текст обрабатывается в один два или большим количеством проходов. Обнаруживаются ошибки в ходе программы. Если среди ошибок встретились неустранимые ошибки, т.е. такие с которыми компилятор не может сам справиться то компиляция прерывается и сообщение об этом и указание на ошибку передается пользователем. Если неустранимых ошибок нет, то порождается объектный под программы. Объектный код – это исполняемый код еще не готовый для исполнения.
3.Объектный код программы обрабатывается редактором связей (программой-линкером).
При этом объектному коду программы присоединяется объектный код библиотек и результат записывается в формате исполняемого файла системы.
Библиотеки
- наборы общеупотребляемых функций заранее реализованные для последующего использования при создании программ.
Типы библиотек:
- системные
- библиотеки компилятора
- пользовательские библиотеки
Важно что бы редактор связей имел доступ к библиотекам, реализующим все необходимые программе функций.
Если некоторая библиотека не найдена. основные действия:
- проверить все ли необходимые пути к файлам библиотек ыли указаны при запуске редактора связей. Если нет → добавить пути к файлам нужных библиотек.
- если библиотека с этой функцией не установлена в этой системе, то можно доустановить требуемые библиотеки.
- отказаться от использования данной функции.
- самому написать требуемую функцию.
Кросс системы.
Обычно программное обеспечение компилируется на той же самой вычислительной системе для которой оно создается. Кросс компиляции -построение исполняемого кода для одной вычислительной системы при помощи средств компиляции исполняемой на другой вычислительной или операционной системе.
Исполняется в случаях:
- компиляция на целевой системе технически не возможна.
- компиляция на целевой системе технически возможна, но экономически не оправдана.
Необходимые условия для кросс компиляции:
- компилятор умеющий порождать код для целевой системы
- редактор связей, способный обрабатывать код в формате целевой системы.
- набор кросс библиотек (библиотек для целевой системы).
Библиотекари объектного кода
- это программа, предназначенная для создания и управления библиотеками объектного кода.
Позднее и раннее связывание.
"Алфавит Си, объекты, характеристики, идентификаторы" - тут тоже много полезного для Вас.
Исполняемый файл программы не обязан иметь в своем составе скомпилированный код библиотек. Чтобы программа могла исполняться достаточно:
- во время работы программы исполняемый код всех функций, вызываемымых из нее находился в памяти системы.
- в исполняемом коде самой программы должны иметься ссылки на область памяти в которой системой размещен исполняемый код функций.
Когда объектный код библиотек включен линкером в исполняемый файл, имеет место ситуации раннего связывания, когда объектный код, необходимых программ функций редактор связей не включает в исполняемый файл, а включает в него только указания на то, какие функции должны быть связаны с программой в момент запуска ее на исполнение, то это – ситуация позднего связывания.
‘+’ позднего связывания:
1) программа занимает меньше места и на диске и в памяти при исполнении.
‘+’ раннего связывания:
1) для возможности запуска программы нет необходимости держать в системе все необходимые ей библиотеки.