Лекция. Лекция_1. История создания и развития языка Си
Скачать 64.5 Kb.
|
История создания и развития языка Си Язык Си был создан в начале 70-х годов Дэннисом Ритчи, который работал в компании Bell Telephone Laboratories. Родословная языка Си берет свое начало от языка Алгол и включает в себя Паскаль и ПЛ/I. Си был разработан как язык для программирования в новой по тем временам операционной системе Unix. ОС Unix была написана на языке ассемблера для ЭВМ PDP-7 и перенесена затем на PDP-11. На язык Си оказал значительное влияние его предшественник, язык Би, созданный Кэном Томпсоном, который в свою очередь является последователем языка BCPL. Язык ВСРL был создан в 1969 г. Мартином Ричардсом в рамках проекта «Комбинированный язык программирования» в Кембриджском университете в Лондоне. Вскоре Unix была переписана на языке Си, и в 1974 - 75 годах OC Unix фирмы Bell Laboratories стала первым коммерческим продуктом, реализующим идею о том, что операционная система может быть успешно написана на языке высокого уровня, если этот язык является достаточно мощным и гибким. В 1978 г. Брайан Керниган и Дэннис Ритчи написали книгу «Язык программирования Си» (издательство Prentice-Hаll). Эта работа, которая в своем кругу называлась «белой книгой» и «K & R» в остальном мире, стала стандартом описания языка Си. На момент создания «K & R» существовали компиляторы языка Си для ЭВМ PDP-11, Interdata 8/32, Honeywell 6000 и IBM 370. В дальнейшем этот список был продолжен. После появления IBM PC стали появляться и компиляторы Си для этой ПЭВМ. Некоторые компиляторы были получены путем преобразования соответствующих компиляторов для процессора 8080, другие были разработаны специально для IBM PC. В настоящее время на рынке представлены, по меньшей мере, семнадцать компиляторов языка Си для IBM PC.В 1983 г. Американский Институт Стандартов (ANSI) сформировал Технический Комитет X3J11, устав которого предусматривает создание стандарта языка Си. Стандартизация будет распространяться не только на язык, но и на программную среду компилятора, а также на библиотеку стандартных функций. Операционные системы Операционная система (с английского operating system) – это программа, которая загружается при включении компьютера, она осуществляет диалог с пользователем, управление компьютером, его ресурсами, запускает другие программы на выполнение, которая обеспечивает пользователю и прикладным программам удобный способ общения (интерфейс) с устройствами компьютера; – базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит. С 1990-х наиболее распространёнными операционными системами для персональных компьютеров и серверов являются ОС семейства Microsoft Windows и Windows NT, Mac OS и Mac OS X, системы класса UNIX, и Unix-подобные (особенно GNU/Linux). Основные функции ОС: загрузка приложений в оперативную память и их выполнение; стандартизованный доступ к периферийным устройствам (устройства ввода-вывода); управление оперативной памятью (распределение между процессами, виртуальная память); управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, компакт-диск и т. д.), как правило, с помощью файловой системы; пользовательский интерфейс; сетевые операции, поддержка стека протоколов Дополнительные функции ОС: параллельное или псевдопараллельное выполнение задач (многозадачность); взаимодействие между процессами; защита самой системы, а также пользовательских данных и программ от злонамеренных действий пользователей или приложений; разграничение прав доступа и многопользовательский режим работы (аутентификация, авторизация). Предшественником ОС следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.). В 1950-60-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы. Информация Информация – это продукт взаимодействия данных и адекватных им методов. Свойства информации: объективность информации; полнота информации; достоверность информации; адекватность информации; доступность информации; актуальность информации. Данные – это составная часть информации. Операции с данными: сбор данных – накопление информации с целью обеспечения полноты для принятия решения; формализация данных – приведение данных из разных источников к одинаковой форме; фильтрация данных – отсеивание лишних данных; сортировка данных – упорядочение данных по заданному признаку; архивация данных – организация хранения данных в удобной и легкодоступной форме; защита данных; транспортировка данных - прием и передача данных между удаленными участниками информационного процесса; преобразование данных - перевод данных из одной формы в другую; Алгоритм, свойства алгоритма. Синтаксис и семантика языка программирования Алгоритм (от algorithmi, algorismus, первоначально – имя математика Аль-Хорезми) – способ (программа) решения вычислительной или другой задачи, точно представляющий, как и в какой последовательности получить результат, однозначно определимый исходными данными. Алгоритм – четкое описание последовательности действий, необходимых выполнить при решении задачи. Разработка алгоритма решения задачи – это разбиение задачи на последовательно выполняемые этапы. Как правило, это: ввод исходных данных; преобразование исходных данных в результат; вывод результата (выходные данные). Алгоритм должен обладать следующими свойствами: 1. Конечность – работа алгоритма должна заканчиваться за конечное число шагов, хотя некоторые шаги могут повторяться многократно. 2. Определенность (детерминированность) – все предписания алгоритма должны иметь однозначную трактовку и должны быть понятны исполнителю алгоритма. 3. Массовость – алгоритм должен решать целые группы задач, отличающихся лишь исходными данными. 4. Результативность – алгоритм должен приводить к достижению поставленной цели за конечное число шагов, он не может быть прерван из-за непредвиденных ситуаций. 5. Эффективность – все шаги алгоритма должны быть такими, чтобы они выполнялись за конечное время, а общее время работы должно быть в допустимых для решения этой задачи пределах. В вычислительной технике для описания алгоритма используются языки программирования. Алгоритмический язык – формализованный язык для однозначной записи алгоритмов, состоящий из набора допустимых символов (алфавита), синтаксических правил и семантических определений. Алфавит – совокупность символов, используемых в языке программирования; прописные и строчные буквы латинского алфавита (A…Z, a…z); цифры (0…9); специальные знаки («», ., -, + и т.д.). Комментарий – это часть программы, которая игнорируется компилятором и служит для удобочитаемости исходного текста. В языке программирования Си существует 2 вида комментариев: однострочный (//…); многострочный (/*…*/) Каждая программа определяется правилами ее представления (синтаксисом) и правилами интерпретации ее содержательного значения (семантикой). Синтаксис (от греческого – syntaxic – построение, порядок) – способы соединения слов и их форм в словосочетания и предложения – это содержательная (смысловая) характеристика данных, определяющая множество возможных значений данных и множество операций, которые можно выполнить над значениями данных без потери смысла поставленной задачи. Семантика – значение единиц языка, изучает значение прежде всего слов – это формальная характеристика данных, определяющая внешний вид (структуру) данных, основанная на стандартах языка программирования и задается грамматикой, которая включает алфавит и синтаксические правила изображения тех или иных конструкций языка. Этапы написания программы Определив понятие алгоритма, теперь можно выделить следующие стандартные этапы написания любой программы: постановка задачи; выбор метода решения; написание исходного текста на языке программирования; компиляция программы (проверка программы на синтаксические ошибки); отладка программы, исправление синтаксических ошибок. присоединение необходимых заголовочных файлов (библиотек) – этап линкования. компоновка (сборка программы). запуск программы на выполнение; окончательная отладка программы (оформление интерфейса); Тестирование программы Результат |