Новосибирский технологический институт Московского государственного университета дизайна и технологии (филиал) ©Составитель: проф. Степанов Б.Ф. Новосибирск 2009 Кафедра АиВТ
Системное программное обеспечение
История операционных систем В истории операционных систем (software) важное место отводится ОС Unix. Unix был разработан в середине 70-х годов прошлого века. В настоящее время Unix используется в корпоративной среде, а также нередко применяется в системах клиент-сервер сетей intranet. Однако Unix уступал Windows по доступности и богатству созданных на его платформе прикладных программ для персональных компьютеров. Для устранения этих недостатков был разработан Linux — широкодоступная ОС, аналогичная Unix. Над проектом с середины 80-х работал Ричард Столман (Richard Stallman). Ядро Linux разработал финн Линус Торвальдс (Linus Torvalds). Дата его создания 1992 г. считается датой рождения Linux. 1981 г. — создана MS-DOS.
Операционная система Операционная система (ОС) - комплекс программ, обеспечивающий управление компьютером, как единым целым, его взаимодействие с окружающей средой (человеком, прикладными программами, другими системами). ОС является главной частью системного программного обеспечения. ОС управляется командами.
Операционная система Классические (несетевые) ОС должны выполнять следующие функции: Планирование заданий и использования процессора, динамическая компоновка выполняемых программ, Обеспечение программ средствами коммуникации и синхронизации (обработка прерываний и обеспечение многозадачной работы).. Управление памятью. Управление файловой системой. Управление вводом-выводом. Обеспечение безопасности
Операционная система Операционные системы привязывают к процессорам, на основе которых разрабатываются компьютеры. Для IBM-совместимых компьютеров различают операционные системы: - однозадачные, - многозадачные, - сетевые - системы реального времени. Иногда операционные системы делят на 32 и 64-разрядные по размеру одновременно обрабатываемого слова в микропроцессоре.
Операционная система
Операционная система МОНОЛИТНОЕ ЯДРО Модуль i Модуль N Модуль 2 Модуль 1 … …
Операционная система Дейкстрой (Dijkstra),1968 г.
Операционная система
Операционная система
Программирование Программное обеспечение (ПО) - компьютерные программы, обеспечивающие функционирование вычислительных систем или решение задач определенного приложения.
Программирование Ада Лавлейс (1815-1852) написала комментарии к статье о машине Чарльза. Бэббеджа, которые можно считать первым трудом по программированию. Описала ряд примеров применения машины, разработала программу вычисления на ней чисел Бернулли.
Программирование История алгоритмических языков Одна из первых попыток создания алгоритмического языка программирования, предпринятой К.Цузе в 1945 г. для электрорелейной ЦВМ "Z-4". Это язык PLANKALKHL, который мог применяться для формализации разнообразных сложных вычислительных процедур. Первые алгоритмические языки эпохи ЭВМ относятся к середине 50-х годов. Джону Бэкусу (J.Backus) принадлежит фундаментальный вклад в создание в 1954 г. языка Фортран (FORTRAN — FORmular TRANslation) и в разработку компилятора для IBM 705 (1958 г.). Коллектив под руководством Бэкуса разработал не только спецификацию языка, но и создал компилятор для него. Кроме того, Фортран был первым языком, для которого были созданы компиляторы для многих ЭВМ. Это обеспечило достаточно быструю и широкую распространенность языка. Язык Алгол с первоначальным названием IAL и с более поздним ALGOL-58 был разработан в 1958 г. международным комитетом под руководством Питера Наура (P.Naur).
Программирование Джон Бэкус и Питер Наур
Программирование Язык Кобол (COBOL – Common Business Oriented Language), представленный в 1960 г., был предназначен для расчетов в сфере бизнеса. Язык ЛИСП для исследований в области искусственного интеллекта (LISP — сокращение от LISt Processing — обработка списков), предназначенный для работы со списками и лямбда – выражениями, создан Маккарти в МТИ в 1960 г. Разработка языка PL/1 относится к 1964 г. Его разработчики из английского отделения IBM стремились в этом языке совместить возможности Алгола и Кобола. Язык моделирования Simula-67 разработан в Норвегии Найгардом (Nygard) и Далом (Dahl). В нем уже используются многие черты объектно-ориентированного программирования.
Программирование Заметным вкладом в создание технологий разработки программного обеспечения стала концепция структурного программирования, основанная на положениях блочно-иерархического подхода к программированию. Ее автором является голландский ученый Эдстер Дейкстра (1930-2002), внесший заметный вклад в разработку информационных технологий. Ему принадлежат также определения стека, семафора, разработка ряда алгоритмов (например, поиск кратчайшего пути) и т.п.
Программирование
Программирование Язык Си (C) создан в 1972 г. Д.Ритчем (D.Ritchie) и К.Томпсоном (K.Thompson) из Bell Labs/Lucent Technologies при поддержке Б.Кернигана. Ими же в 1973 г. на языке Си представлена операционная система UNIX. В рекламных целях UNIX в университетах распространялся почти бесплатно, вместе с UNIX распространялся и Си. Благодаря эффективности исполнения программ, написанных на этом языке, он получил широкое распространение. До сих пор Си – один из лучших языков для системного программирования. Он стандартизован в 1989 г., стандартная версия языка обозначается ANSI C.
Программирование Первый полностью объектно-ориентированный язык программирования SmallTalk создан в 1972 г. Алана Кей , компания Xerox. В 1973 г. в Марсельском университете разработан язык логического программирования Пролог, в котором описываются факты и отношения между ними. Универсальный язык программирования Ада был разработан по заказу министерства обороны США в 1979 г. Список требований к языку прошел через несколько этапов утверждения. Руководителем группы разработчиков француз Жан Ихбиа. Вернувшись из Стенфорда в Швейцарию, Н.Вирт развивает методологию программирования. В 1980 г. в языке Модула-2 он реализует концепцию модульного программирования, затем в Оберон-2 – объектно-ориентированное и в Component Pascal – компонентно-ориентированное программирование. Создание объектно-ориентированного языка С++ относят к 1982 г. Его автором является датчанин Бьерн Страуструп (Bjarne Stroustup), сотрудник лаборатории AT&T Bell Labs, в которой уже были разработаны операционная система UNIX и язык программирования Си, взятый за основу (вместе с идеями объектной ориентированности из языка Симула67) и для Си++.
Программирование Язык программирования Java разработан в 1995 г. Джеймсом Гослингом из компании Sun Microsystems. В последние годы Андерс Хейльсберг, перешедший из Borland в Microsoft, разработал язык C# (Си-шарп) и занимается развитием среды Microsoft.Net Framework. А.Хейльсберг и Б.Страуструп
Трансляция и интерпретация
Трансляция и интерпретация
Трансляция и интерпретация
Трансляция и интерпретация
Трансляция и интерпретация Семантика. — система правил определения поведения отдельных языковых конструкций. Семантика определяет смысловое значение предложений алгоритмического языка.
ЯЗЫК ПРОГРАММИРОВАНИЯ Язы к программи рования — формальная знаковая система, предназначенная для записи программ. Программа - некоторый алгоритм в форме, понятной для исполнителя (например, компьютера).
ЯЗЫК ПРОГРАММИРОВАНИЯ Алгоритм — строго детерминированная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью понятных исполнителю команд. (Николай Дмитриевич Угринович, учебник «Информатика и информ. технологии»)
ЯЗЫК ПРОГРАММИРОВАНИЯ Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.
ЯЗЫК ПРОГРАММИРОВАНИЯ ЛЕКСИКА Ле ксика (от греч. λεξικός — «относящийся к слову», от греч. λέξις — «слово», «оборот речи») — раздел науки о языке, изучающий значения слов. Лексика — весь словарный запас языка.
Синтаксис - раздел описания формального математического языка или языка программирования, исследующий вид, форму и структуру конструкций (без учета их значения или практической применимости). ЯЗЫК ПРОГРАММИРОВАНИЯ
СЕМАНТИКА Семантика. — система правил определения поведения отдельных языковых конструкций. Семантика определяет смысловое значение предложений алгоритмического языка. Существует несколько подходов к определению семантики языков программирования. Наиболее широко распространены разновидности следующих подходов к семантике языков программирования: операционный (математический), деривационный (аксиоматический), денотационный ЯЗЫК ПРОГРАММИРОВАНИЯ
ЯЗЫК ПРОГРАММИРОВАНИЯ Семантика. Операционная семантика интерпретирует исполнение конструкций языка программирования с помощью некоторой воображаемой (абстрактной) ЭВМ. Деривационная семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий. Денотационная семантика оперирует понятиями, типичными для математики — множества, соответствия, а также суждения, утверждения и др.
ЯЗЫК ПРОГРАММИРОВАНИЯ Семантика. Операционная семантика интерпретирует исполнение конструкций языка программирования с помощью некоторой воображаемой (абстрактной) ЭВМ. Деривационная семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий. Денотационная семантика оперирует понятиями, типичными для математики — множества, соответствия, а также суждения, утверждения и др.
ЯЗЫК ПРОГРАММИРОВАНИЯ Компью терная програ мма — последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины. В зависимости от контекста, рассматриваемый термин может относиться также и к исходным текстам программы.
ЯЗЫК ПРОГРАММИРОВАНИЯ КЛАССИФИКАЦИЯ
ЯЗЫК ПРОГРАММИРОВАНИЯ КЛАССИФИКАЦИЯ Машинно-зависимые языки – (Ассемблер, макроассемблер- языки низкого уровня) применяются для написания программ, явно использующих специфику конкретной аппаратуры. Машинно-ориентированные языки – (СИ ). объединяют достоинства низкоуровневых возможностей ассемблеров и мощных выразительных средств языков программирования высокого уровня. Универсальные языки (языки высокого уровня) - (Фортран, PL/I, Паскаль Turbo Pascal и др.) наиболее эффективны при численных расчетах, просты по структуре и удобны при выполнении программ, получили большое распространение при разработке прикладных программ для решения инженерных, экономических и научных задач. Самыми распространенными на ЭВМ являются различные версии языка Бейсик, простота которого делает его превосходным средством для начинающих программистов.
ЯЗЫК ПРОГРАММИРОВАНИЯ КЛАССИФИКАЦИЯ Проблемно-ориентированные языки – (Лого, CPSS, Форт и Смолток.) языки программирования, управляющие структуры и структуры данных которых отражают особенности класса решаемых задач. Например, Лого — диалоговый процедурный язык, реализованный на принципе интерпретации и работающий со списками, текстами, графическими средствами и т. д. Язык очень перспективен для обучения, создания электронных игрушек и т. д. Развитием проблемно-ориентированных языков является объектно-ориентированный подход (языки Смолток, Форт, Модула и Ада). Отличительные особенности таких языков: модульность построения процедур, абстракция данных, динамическая связка программ и использование механизма наследования иерархического типа. Например, Смолток предназначен для решения нечисловых задач при построении систем искусственного интеллекта. В языке Форт применены структурное программирование и очень компактный машинный код.
ЯЗЫК ПРОГРАММИРОВАНИЯ КЛАССИФИКАЦИЯ Функциональные языки (Языки функционального программирования) (Лисп, AutoLISP, Пролог, СНОБОЛ)- языки, основным конструктивным элементом которых является математическое понятие функции. Тексты программ на функциональных языках программирования описывают «как решить задачу», но не предписывают последовательность действий для решения. Например, AutoLISP широко используется в системе автоматизированного проектирования AutoCAD. В качестве основных свойств функциональных языков программирования обычно рассматриваются следующие: краткость и простота; строгая типизация; модульность; функции — объекты вычисления. Используются также для разработки систем искусственного интеллекта (языки Лисп, Пролог и СНОБОЛ – эти языки относятся к так называемым языкам представления знаний.
ЯЗЫК ПРОГРАММИРОВАНИЯ Используемые символы Современные языки программирования рассчитаны на использование ASCII. ASCII (англ. American Standard Code for Information Interchange — Американский стандартный код для обмена информацией. ASCII представляет собой 8-битную кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Управляющие символы ASCII используются ограниченно.
ЯЗЫК ПРОГРАММИРОВАНИЯ
ЯЗЫК ПРОГРАММИРОВАНИЯ
ЯЗЫК ПРОГРАММИРОВАНИЯ Используемые символы КОИ-8 (код обмена информацией, 8 битов), KOI8 — восьмибитовая ASCII-совместимая кодовая страница, разработанная для кодирования букв кириллических алфавитов.
ЯЗЫК ПРОГРАММИРОВАНИЯ