- •Предисловие.
- •1. Введение.
- •2. Количество информации.
- •2.1. Формула хартли.
- •2.2. Формула шеннона.
- •2.3. Свойства энтропии.
- •2.4. Энтропия в информатике и физике.
- •2.5. Вероятностный и объемный подходы к измерению количества информации.
- •2.6. Различные аспекты анализа информации.
- •3. Принципы кодирования и декодирования информации.
- •3.1. Буква (знак, символ). Алфавит.
- •3.2. Кодировщик и декодировщик.
- •3.3. Международные системы байтового кодирования.
- •3.4. Помехоустойчивое кодирование информации.
- •4. Передача информации.
- •4.1. Из истории развития передачи информации.
- •4.2 . Общая схема передачи информации.
- •4.3. Теорема котельникова.
- •4.4.Информационная емкость дискретного сигнала (сообщения). Формула шеннона.
- •4.5. Предельная скорость передачи информации по шеннону. Формула хартли - шеннона.
- •4.6. Теорема шеннона для дискретного канала с помехами.
- •5. Дискретные двоичные (бинарные) сигналы.
- •5.1. Регенерация двоичных сигналов.
- •5.2. Помехозащищенность двоичных сигналов.
- •5.3. Кодирование двоичных сигналов.
- •6. Аналоговые и дискретные процессы.
- •6.1. Аналоговые и дискретные сигналы.
- •6.2. Измерение отношения сигнал – шум.
- •6.3. Дискретизация и кодирование аналогового сигнала.
- •7. Цифровая телефонная связь.
- •8. Цифровая телеграфная связь.
- •9. Цифровое телевидение.
- •10. Системы передачи информации
- •10.1. Параметры радиосигналов.
- •10.2. Многоканальные линии связи. Уплотнение информации.
- •11. Оптоволоконная связь.
- •11.1. Из истории кабельной связи.
- •11.2. Принцип оптоволоконной связи.
- •12. Локальные сети.
- •12.1. Аппаратные средства.
- •12.2. Конфигурация локальных сетей.
- •12.3. Организация обмена информацией.
- •13. Спутниковая связь.
- •13.1. Общая характеристика спутниковой связи.
- •13.2. Принципы спутниковой связи.
- •14. Системы счисления.
- •14.1. Непозиционные системы счисления.
- •14.2. Позиционные системы счисления.
- •14.3. Перевод чисел из десятичной системы в другую систему.
- •14.4. Перевод чисел в десятичную систему из других систем.
- •14.5. Взаимные преобразования двоичных, восьмеричных и шестнадцатеричных чисел.
- •14.6. Двоично-десятичная система.
- •15. Языки программирования.
- •15.1. Языки программирования. Общая характеристика.
- •15.2. Язык программирования си. История создания. Общая характеристика.
- •15.3. Язык программирования си. Процесс создания исполняемого файла.
- •15.4. Язык программирования си. Распределение памяти программы.
- •15.5. Язык программирования си. Основные понятия.
- •15.6. Язык программирования си. Данные.
- •15.7. Язык программирования си. Структура простой программы.
- •Приложение 1. Система семибитного кодирования.
- •Приложение 2. Модифицированная альтернативная кодировка.
- •Приложение 3: клод элвуд шеннон.
- •Литература.
- •Оглавление.
15.2. Язык программирования си. История создания. Общая характеристика.
Язык программирования C (Си) был разработан Деннисом Ритчи (Dennis Ritchie) в 1972 году как инструмент написания операционной системы (ОС) UNIX для электронной вычислительной машины (ЭВМ) PDP-11 фирмы DEC. ОС UNIX была задумана как мастерская для инженеров программистов. Главный инструмент мастерской – язык Си. В настоящее время язык Си используется на различных ЭВМ, на которых установлены разные операционные системы (UNIX, DOS, OS/2, WINDOWS и др.).
Ближайшими родственниками и предками языка программирования Си являются языки программирования:
-
Алгол 60 (ALGOL – ALGOrithmic Language - -алгоритмический язык), разработанный Джоном Бэкусом (Backus) и Питером Науром (Naur) и принятый Международным комитетом из представителей семи стран (США, ФРГ, Англии, Франции, Дании, Нидерландов и Швйцарии) в Париже в 1960 году;
-
CPL (Combined Programming Language), разработанный Кембриджским и Лондонским университетами в 1963 году;
-
BCPL (Basic Combined Programming Language), разработанный Мартином Ричардсом (Martin Richards) в Кембриджском университете в 1967 году;
-
B (базовый язык Би), разработанный Кеном Томпсоном (Ken Thompson) в Bell Laboratories в 1970 году.
Язык Си является одновременно языком высокого и низкого уровней (ассемблер высокого уровня). Это означает, что он одновременно относится к двум классам формальных алгоритмических языков:
-
универсальных машинно-независимых языков (высокий уровень),
-
машинно-ориентированных языков (низкий уровень).
Язык Си имеет хорошо развитые структуры, модули, определяемые типы данных. В этом проявляется его высокий уровень, свойственный таким языкам как, например, Паскаль.
Язык Си открывает доступ к номерам ячеек памяти, битам, байтам, регистрам, управляющим работой центрального процессора и внешних устройств. В этом проявляется его низкий уровень, свойственный ассемблерам.
Язык Си соответствует возможностям многих ЭВМ, но не зависит от их архитектуры. Программы-драйверы не являются составной частью языка Си, а находятся в специальных файлах-библиотеках. Поэтому, программы, написанные на языке Си, являются машинно-независимыми.
Стандарта языка Си до 1989 года не существовало. В качестве описания языка Си первоначально использовалось (в частности разработчиками компиляторов) первое издание книги Керниган Б., Ритчи Д. «Язык программирования Си», вышедшее в США в 1978 году. Этот неформальный, существовавший де-факто стандарт, обозначается специальным сокращением K&R (Kernighan & Ritchie).
В 1989 году Американский институт национальных стандартов (American National Standarts Institute - ANSI) принял стандарт языка Си C89. Этот же стандарт был принят Международной организацией по стандартизации (International Standards Organizaton - ISO). Стандарт ANSI/ISO C89 используется всеми компиляторами языка Си.
Стандарт ANSI/ISO C89 является также основой объектно-ориентированного языка программирования C++, созданного Бьерном Строуструпом (Bjarne Stroustrup) в 80-х годах в Bell Laboratories. Язык Си – это подмножество языка C++. Язык C++ - это надмножество языка Си.
В 1999 году был принят стандарт ANSI/ISO C99, в который был включен ряд изменений и дополнений [18]: массивы переменной длины, новые библиотеки, однострочные комментарии, добавления к препроцессору, новые встроенные типы данных и др.