Слайд 2
Системное программное обеспечение
Слайд 3
История операционных систем
В истории операционных систем (software)
важное место отводится ОС Unix.
Unix был разработан в середине
70-х годов прошлого века. В настоящее время Unix используется в корпоративной среде, а также нередко применяется в системах клиент-сервер сетей intranet. Однако Unix уступал Windows по доступности и богатству созданных на его платформе прикладных программ для персональных компьютеров.
Для устранения этих недостатков был разработан Linux — широкодоступная ОС, аналогичная Unix. Над проектом с середины 80-х работал Ричард Столман (Richard Stallman). Ядро Linux разработал финн Линус Торвальдс (Linus Torvalds). Дата его создания 1992 г. считается датой рождения Linux.
1981 г. — создана MS-DOS.
Слайд 4
Операционная система
Операционная система (ОС) - комплекс программ,
обеспечивающий управление компьютером, как единым целым, его взаимодействие с
окружающей средой (человеком, прикладными программами, другими системами).
ОС является главной частью системного программного обеспечения.
ОС управляется командами.
Слайд 5
Операционная система
Классические (несетевые) ОС должны выполнять следующие функции:
Планирование заданий и использования процессора, динамическая компоновка выполняемых программ,
Обеспечение программ средствами коммуникации и синхронизации (обработка прерываний и обеспечение многозадачной работы)..
Управление памятью.
Управление файловой системой.
Управление вводом-выводом.
Обеспечение безопасности
Слайд 6
Операционная система
Операционные системы привязывают к процессорам, на основе
которых разрабатываются компьютеры.
Для IBM-совместимых компьютеров различают операционные системы:
-
однозадачные,
- многозадачные,
- сетевые
- системы реального времени.
Иногда операционные системы делят на 32 и 64-разрядные по размеру одновременно обрабатываемого слова в микропроцессоре.
Слайд 7
ВЗАИМОДЕЙСТВИЕ ПРОГРАММНОГО И ТЕХНИЧЕСКОГО ОБЕСПЕЧЕНИЯ
Операционная система
Слайд 8
Операционная система
МОНОЛИТНОЕ
ЯДРО
Модуль
i
Модуль N
Модуль 2
Модуль 1
…
…
Слайд 9
Операционная система
Дейкстрой (Dijkstra),1968 г.
Слоеная система Technishe Hogeschool
Eindhoven
(THE)
Слайд 10
Операционная система
ОС- виртуальная машина
Слайд 11
Операционная система
МНОГОЯДЕРНАЯ СТРУКТУРА ОС
Слайд 12
Программирование
История программирования
(история лингвистического и программного обеспечения)
— это прежде всего история алгоритмических языков,
операционных систем
и технологий разработки программого обеспечения.
Программное обеспечение (ПО) - компьютерные программы, обеспечивающие функционирование вычислительных систем или решение задач определенного приложения.
Слайд 13
Программирование
Ада Лавлейс
(1815-1852)
написала комментарии
к статье о
машине Чарльза. Бэббеджа, которые можно считать первым трудом по
программированию. Описала ряд примеров применения машины, разработала программу вычисления на ней чисел Бернулли.
Слайд 14
Программирование
История алгоритмических языков
Одна из первых попыток
создания алгоритмического языка программирования, предпринятой К.Цузе в 1945 г.
для электрорелейной ЦВМ "Z-4". Это язык PLANKALKHL, который мог применяться для формализации разнообразных сложных вычислительных процедур.
Первые алгоритмические языки эпохи ЭВМ относятся к середине 50-х годов. Джону Бэкусу (J.Backus) принадлежит фундаментальный вклад в создание в 1954 г. языка Фортран (FORTRAN — FORmular TRANslation) и в разработку компилятора для IBM 705 (1958 г.). Коллектив под руководством Бэкуса разработал не только спецификацию языка, но и создал компилятор для него. Кроме того, Фортран был первым языком, для которого были созданы компиляторы для многих ЭВМ. Это обеспечило достаточно быструю и широкую распространенность языка.
Язык Алгол с первоначальным названием IAL и с более поздним ALGOL-58 был разработан в 1958 г. международным комитетом под руководством Питера Наура (P.Naur).
Слайд 15
Программирование
Джон Бэкус и Питер Наур
Слайд 16
Программирование
Язык Кобол (COBOL – Common Business Oriented Language),
представленный в 1960 г., был предназначен для расчетов в
сфере бизнеса.
Язык ЛИСП для исследований в области искусственного интеллекта (LISP — сокращение от LISt Processing — обработка списков), предназначенный для работы со списками и лямбда – выражениями, создан Маккарти в МТИ в 1960 г.
Разработка языка PL/1 относится к 1964 г. Его разработчики из английского отделения IBM стремились в этом языке совместить возможности Алгола и Кобола.
Язык моделирования Simula-67 разработан в Норвегии Найгардом (Nygard) и Далом (Dahl). В нем уже используются многие черты объектно-ориентированного программирования.
Слайд 17
Программирование
Заметным вкладом в создание технологий разработки программного обеспечения
стала концепция структурного программирования, основанная на положениях блочно-иерархического подхода
к программированию. Ее автором является голландский ученый Эдстер Дейкстра (1930-2002), внесший заметный вклад в разработку информационных технологий. Ему принадлежат также определения стека, семафора, разработка ряда алгоритмов (например, поиск кратчайшего пути) и т.п.
Слайд 18
Программирование
Язык программирования Паскаль (Pascal) создан швейцарцем Н.Виртом (Niclaus
Wirth) на кафедре информатики Стэнфордского университета на базе структурного
программирования. Первая публикация описания языка относится к 1970 г. Особенность языка — его четкая структурированность, ясная логика определений, лаконичность описаний. Популярность язык приобрел после создания Андерсом Хейльсбергом (Anders Hejlsberg) в компании Borland версии Турбо Паскаль, в которой компилятор был объединен с редактором текста. Хейльсберг руководил разработкой среды Delphi, в которой Pascal стал объектно-ориентированным языком Object Pascal.
Слайд 19
Программирование
Язык Си (C) создан в 1972 г. Д.Ритчем
(D.Ritchie) и К.Томпсоном (K.Thompson) из Bell Labs/Lucent Technologies при
поддержке Б.Кернигана. Ими же в 1973 г. на языке Си представлена операционная система UNIX. В рекламных целях UNIX в университетах распространялся почти бесплатно, вместе с UNIX распространялся и Си. Благодаря эффективности исполнения программ, написанных на этом языке, он получил широкое распространение. До сих пор Си – один из лучших языков для системного программирования. Он стандартизован в 1989 г., стандартная версия языка обозначается ANSI C.
Слайд 20
Программирование
Первый полностью объектно-ориентированный язык программирования SmallTalk создан в
1972 г. Алана Кей , компания Xerox.
В 1973 г.
в Марсельском университете разработан язык логического программирования Пролог, в котором описываются факты и отношения между ними.
Универсальный язык программирования Ада был разработан по заказу министерства обороны США в 1979 г. Список требований к языку прошел через несколько этапов утверждения. Руководителем группы разработчиков француз Жан Ихбиа.
Вернувшись из Стенфорда в Швейцарию, Н.Вирт развивает методологию программирования. В 1980 г. в языке Модула-2 он реализует концепцию модульного программирования, затем в Оберон-2 – объектно-ориентированное и в Component Pascal – компонентно-ориентированное программирование.
Создание объектно-ориентированного языка С++ относят к 1982 г. Его автором является датчанин Бьерн Страуструп (Bjarne Stroustup), сотрудник лаборатории AT&T Bell Labs, в которой уже были разработаны операционная система UNIX и язык программирования Си, взятый за основу (вместе с идеями объектной ориентированности из языка Симула67) и для Си++.
Слайд 21
Программирование
Язык программирования Java разработан в 1995 г. Джеймсом
Гослингом из компании Sun Microsystems.
В последние годы Андерс Хейльсберг,
перешедший из Borland в Microsoft, разработал язык C# (Си-шарп) и занимается развитием среды Microsoft.Net Framework.
А.Хейльсберг и Б.Страуструп
Слайд 22
Трансляция и интерпретация
В автоматизированных системах на разных
этапах обработки информации, как правило, используется несколько разных языков.
При подготовке данных для ввода в ЭВМ применяют входные языки, программы в исходном состоянии представлены на алгоритмических языках, исполнение программ происходит на машинном языке. Возникает задача перевода информации с одного языка на другой.
Язык, с которого осуществляется перевод, называют исходным, а язык, на который происходит перевод, — объектным.
Слайд 23
Трансляция и интерпретация
Для перевода программы с входного
языка на объектный применяют специальные программы, называемые языковыми процессорами.
Перевод
может выполняться методами интерпретации или трансляции.
Слайд 24
Трансляция и интерпретация
Перевод, заканчивающийся получением объектной программы,
называют трансляцией, а программу, используемую для трансляции, — транслятором.
Если объектный язык — машинный или близкий к машинному, то трансляцию и транслятор называют компиляцией и компилятором соответственно.
При интерпретации, выполняемой с помощью интерпретаторов, предложения исходной программы поочередно преобразуется в машинный код и тут же исполняются, т.е. объектная программа, как таковая, не формируется и не требуется отводить для нее место в памяти ЭВМ. Для интерпретации характерны меньшие затраты памяти, чем для трансляции. Однако в циклических вычислительных процессах интерпретация каждого предложения исходной программы будет повторяться многократно, поэтому, интерпретация характеризуется повышенными затратами времени.
Слайд 25
Трансляция и интерпретация
Различают одно- и многопроходные трансляторы.
В однопроходных трансляторах трансляция происходит в несколько этапов, называемых
фазами.
На фазе лексического анализа исходное описание разделяется на структурные единицы — лексемы (идентификаторы, числа, метки и т.п.).
На этапе синтаксического анализа проверяется соблюдение синтаксиса исходного языка и при наличии ошибок выдаются соответствующие диагностические сообщения.
На этапе генерации кода формируется объектная программа.
Слайд 26
Трансляция и интерпретация
Семантика. — система правил определения поведения
отдельных языковых конструкций — система правил определения поведения отдельных языковых
конструкций. Семантика определяет смысловое значение предложений алгоритмического языка.
Слайд 27
ЯЗЫК ПРОГРАММИРОВАНИЯ
Язы́к программи́рования — формальная знаковая система, предназначенная для
записи программ.
Программа - некоторый алгоритм - некоторый алгоритм в
форме, понятной для исполнителя (например, компьютера).
Слайд 28
ЯЗЫК ПРОГРАММИРОВАНИЯ
Алгоритм — строго детерминированная последовательность действий, описывающая процесс
преобразования объекта из начального состояния в конечное, записанная с
помощью понятных исполнителю команд.
(Николай Дмитриевич Угринович, учебник
«Информатика и информ. технологии»)
Слайд 29
ЯЗЫК ПРОГРАММИРОВАНИЯ
Язык программирования определяет набор лексическихопределяет набор лексических,
синтаксическихопределяет набор лексических, синтаксических и семантическихопределяет набор лексических, синтаксических
и семантических правил, используемых при составлении компьютерной программыопределяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программистуопределяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.
Слайд 30
ЯЗЫК ПРОГРАММИРОВАНИЯ
ЛЕКСИКА
Ле́ксика (от греч. (от греч. λεξικός —
«относящийся к слову», от греч. (от греч. λεξικός —
«относящийся к слову», от греч. λέξις — «слово», «оборот речи») — раздел науки о языке (от греч. λεξικός — «относящийся к слову», от греч. λέξις — «слово», «оборот речи») — раздел науки о языке, изучающий значения слов.
Лексика — весь словарный запас языка.
Слайд 31
Синтаксис - раздел описания формального математического языка или
языка программирования, исследующий вид, форму и структуру конструкций (без
учета их значения или практической применимости).
ЯЗЫК ПРОГРАММИРОВАНИЯ
Слайд 32
СЕМАНТИКА
Семантика. — система правил определения
поведения отдельных языковых конструкций.
Семантика
определяет смысловое значение
предложений алгоритмического языка.
Существует несколько подходов к определению
семантики языков программирования. Наиболее широко распространены разновидности следующих подходов к семантике языков программирования:
операционный (математический),
деривационный (аксиоматический),
денотационный
ЯЗЫК ПРОГРАММИРОВАНИЯ
Слайд 33
ЯЗЫК ПРОГРАММИРОВАНИЯ
Семантика.
Операционная семантика интерпретирует исполнение конструкций языка
программирования с помощью некоторой воображаемой (абстрактной) ЭВМ.
Деривационная семантика описывает
последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий.
Денотационная семантика оперирует понятиями, типичными для математики — множества, соответствия, а также суждения, утверждения и др.
Слайд 34
ЯЗЫК ПРОГРАММИРОВАНИЯ
Семантика.
Операционная семантика интерпретирует исполнение конструкций языка
программирования с помощью некоторой воображаемой (абстрактной) ЭВМ.
Деривационная семантика описывает
последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий.
Денотационная семантика оперирует понятиями, типичными для математики — множества, соответствия, а также суждения, утверждения и др.
Слайд 35
ЯЗЫК ПРОГРАММИРОВАНИЯ
Компью́терная програ́мма —
последовательность инструкций, предназначенная для
исполнения устройством управления вычислительной
машины. В зависимости от контекста,
рассматриваемый
термин может относиться также и к
исходным текстам программы.
Слайд 36
ЯЗЫК ПРОГРАММИРОВАНИЯ
КЛАССИФИКАЦИЯ
Слайд 37
ЯЗЫК ПРОГРАММИРОВАНИЯ
КЛАССИФИКАЦИЯ
Машинно-зависимые языки – (Ассемблер, макроассемблер- языки низкого
уровня) применяются для написания программ,
явно использующих специфику конкретной
аппаратуры.
Машинно-ориентированные языки – (СИ ). объединяют достоинства низкоуровневых возможностей ассемблеров и мощных выразительных средств языков программирования высокого уровня.
Универсальные языки (языки высокого уровня) - (Фортран, PL/I, Паскаль Turbo Pascal и др.) наиболее эффективны при численных расчетах, просты по структуре и удобны при выполнении программ, получили большое распространение при разработке прикладных программ для решения инженерных, экономических и научных задач. Самыми распространенными на ЭВМ являются различные версии языка Бейсик, простота которого делает его превосходным средством для начинающих программистов.
Слайд 38
ЯЗЫК ПРОГРАММИРОВАНИЯ
КЛАССИФИКАЦИЯ
Проблемно-ориентированные языки – (Лого, CPSS, Форт и
Смолток.) языки программирования, управляющие структуры и структуры данных которых
отражают особенности класса решаемых задач. Например, Лого — диалоговый процедурный язык, реализованный на принципе интерпретации и работающий со списками, текстами, графическими средствами и т. д. Язык очень перспективен для обучения, создания электронных игрушек и т. д.
Развитием проблемно-ориентированных языков является объектно-ориентированный подход (языки Смолток, Форт, Модула и Ада). Отличительные особенности таких языков: модульность построения процедур, абстракция данных, динамическая связка программ и использование механизма наследования иерархического типа. Например, Смолток предназначен для решения нечисловых задач при построении систем искусственного интеллекта. В языке Форт применены структурное программирование и очень компактный машинный код.
Слайд 39
ЯЗЫК ПРОГРАММИРОВАНИЯ
КЛАССИФИКАЦИЯ
Функциональные языки (Языки функционального программирования) (Лисп, AutoLISP,
Пролог, СНОБОЛ)- языки, основным конструктивным элементом которых является математическое
понятие функции. Тексты программ на функциональных языках программирования описывают «как решить задачу», но не предписывают последовательность действий для решения. Например, AutoLISP последовательность действий для решения. Например, AutoLISP широко используется в системе автоматизированного проектирования AutoCAD.
В качестве основных свойств функциональных языков программирования обычно рассматриваются следующие:
краткость и простота;
строгая типизация;
модульность;
функции — объекты вычисления.
Используются также для разработки систем искусственного интеллекта (языки Лисп, Пролог и СНОБОЛ – эти языки относятся к так называемым языкам представления знаний.
Слайд 40
ЯЗЫК ПРОГРАММИРОВАНИЯ
Используемые символы
Современные языки программирования рассчитаны на использование ASCII.
ASCII (англ. American
Standard Code for Information Interchange — Американский — Американский стандартный — Американский стандартный код — Американский стандартный код для
обмена информацией.
ASCII представляет собой 8-битную кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Управляющие символы ASCII используются ограниченно.
Слайд 43
ЯЗЫК ПРОГРАММИРОВАНИЯ
Используемые символы
КОИ-8 (код обмена информацией, 8 битов),
KOI8 — восьмибитовая ASCII — восьмибитовая ASCII-совместимая кодовая страница — восьмибитовая ASCII-совместимая кодовая страница, разработанная для кодирования
букв кириллических алфавитов.