- •1. Особенности информатики как науки и учебной дисциплины. Роль информации в современном обществе.
- •2. Этапы становления и развития информатики. Информационные барьеры в истории человечества.
- •3. Свойства информации, как признак ее классификации.
- •4. Информационная культура.
- •5. Информационные технологии
- •6. Информационные ресурсы
- •7. Информационные системы
- •8. Состав информационных процессов. Передача информации, как один из информационных процессов.
- •9. Существо подходов к измерению количества информации.
- •10. Мера количества информации р. Хартли
- •11. Мера количества информации к. Шеннона для сообщений с неравновероятными независимыми символами.
- •12. Логические элементы пэвм. Основные законы и тождества алгебры логики.
- •13. Истоки вычислительной техники
- •14. История создания и развития отечественной вычислительной техники
- •15. Поколения эвм
- •16. Классификация эвм по области применения.
- •17. Структурная схема эвм по фон Нейману
- •18. Функционирование пэвм
- •19. Назначение, классификация, история создания и эволюции микропроцессоров
- •20. Иерархия подсистемы памяти
- •21. Внешние запоминающие устройства. Физические основы записи и хранения информации на магнитных носителях жестких дисков
- •22. Внешние запоминающие устройства. Физические основы записи, хранения и считывания информации с оптических дисков
- •23. Устройства ввода информации. Клавиатура. Ручной манипулятор «мышь»
- •24. Устройства вывода информации. Устройство дисплея на основе жидкокристаллической матрицы
- •25. Устройства вывода информации. Принцип действия лазерного принтера
- •26. Моделирование как метод научного познания. Основные термины и определения
- •27. Математическое (аналитическое) моделирование
- •28. Математическое имитационное моделирование
- •29. Классификация моделей
- •30. Понятие «алгоритм». Сложность алгоритмов
- •31. Свойства алгоритмов
- •32. Формы представления (задания) алгоритмов
- •33. Типовые структуры алгоритмов
- •34. Этапы создания программы. Основные характеристики программ
- •35. Этапы становления и развития технологий программирования
- •36. Классификация языков программирования
- •38. Классификация программного обеспечения пэвм
- •39. Структура системного программного обеспечения
- •40. Понятие об операционной системе
- •41. Операционные системы корпорации Microsoft
- •42. Два подхода к хранению и использованию данных в информационных системах
- •43. Понятие предметной области. Виды моделей баз данных. Иерархическая и сетевая модели
- •44. Виды моделей баз данных . Реляционная модель базы данных
- •45. Системы управления базами данных и их функции
- •46. Цели создания компьютерных сетей
- •47. Классификация компьютерных сетей
- •48. История создания и эволюция Internet
- •49. Понятие «Информационная безопасность»
- •50. Основные составляющие информационной безопасности.
- •51.Компьютерные вирусы. Признаки проявления.
- •52.Методы защиты от компьютерных вирусов
- •53. Модель криптографической симметричной системы.
- •54.Модель асимметричной системы шифрования.
- •55. Криптографическая система с открытым ключом
- •56. Электронная цифровая подпись
- •Требования к эцп
- •57. Общие сведения о Word
- •58. Общие сведения о Microsoft excel.
- •59. Microsoft pp
36. Классификация языков программирования
Языком программирования называют систему обозначений для описания данных и программ, а также их обработки на ЭВМ. Различают естественные и искусственные языки. Язык программирования относится к искусственным языкам, занимает промежуточное положение между естественными и формальными языками и не допускает неоднозначности и произвольных толкований.
У языков программирования, как и у естественных языков, имеется свой алфавит, синтаксис и своя семантика.
Алфавит – набор различных символов, букв, цифр, специальных знаков, разрешенный в данном языке . Так в машинных кодах алфавит состоит всего лишь из двух символов – «0» и «1».
Синтаксис – это набор правил, которые определяют основные внутренние структуры (конструкции) и последовательности символов, допустимых в данном языке программирования его алфавитом.
Семантика – совокупность правил истолкования конструкций языка, образованных в соответствии с синтаксисом.
Известно несколько подходов к классификации языков программирования. Мы воспользуемся подходом, связанным с поколениями ЭВМ.
Написание программ для ЭВМ первого поколения велось исключительно на машинном языке. Фрагмент программы сложения двух чисел 7 и 5 на машинном языке показан в таблице 11.1.
Таблица 11.1 – Фрагмент программы сложения двух чисел в машинных кодах
Адрес |
Команда, данные |
Содержание операции |
1101 0001 |
0011 1111 |
Запись в регистр А |
1101 0010 |
0000 0101 |
Число 5 |
1101 0011 |
0000 0110 |
Запись в регистр В |
1101 0100 |
0000 0111 |
Число 7 |
1101 0101 |
1000 0000 |
Сложение чисел, находящиеся в регистрах А и В |
1101 1101 |
0111 0110 |
Останов |
Более высоким уровнем, по сравнению с машинными языками являются машинно-ориентированные языки символического кодирования. Основной принцип при создании языков символического кодирования состоит в замене машинных кодов на их буквенные обозначения, а также в автоматизации процесса распределения памяти диагностики ошибок. Наиболее ярким примером таких языков является язык Ассемблера. Тот же самый фрагмент программы (сложения двух чисел 5 и 7) на языке Ассемблера принимает вид, показанный в таблице 11.2 (для учебно-отладочного устройства «Электроника-580»).
Таблица 11.2 - Фрагмент программы сложения двух чисел на языке Ассемблера
Адрес |
Мнемоническая запись команды, данных |
Содержание операции |
8200 |
MVI A |
Запись в аккумулятор |
8201 |
5 |
число 5 |
8202 |
MVI B |
Запись в регистр В |
8203 |
7 |
Число 7 |
8204 |
ADD B |
Сложение чисел, находящиеся в аккумуляторе и регистре В |
8205 |
HLT |
Останов |
Начальный адрес 8200 устанавливается автоматически при сбросе установки. Остальные адреса также устанавливаются автоматически счетчиком команд.
На следующем уровне развития языков находятся процедурно-ориентированные языки (языки высокого уровня. Разработка этих языков непосредственно связана с созданием ЭВМ второго поколения.
Одним из первых таких языков стал язык Фортран (FORmula TRANslator – переводчик формул). Язык создан в 1956 г и в дальнейшем претерпел несколько модификаций (версий) – Базовый Фортран, Фортран IV, Фортран-77. Основное назначение – решение научных и инженерных задач.
В 1960 году Международная конференция а Париже приняла алгоритмический язык Алгол -60 (ALGOritmic Language). Алгол -60 привлек к себе внимание в силу ряда новых обобщающих идей:
- понятия блочной структуры и области действия обозначений, позволяющие разделять работу по составлению больших программ на более обозримые части;
- возможность динамического распределения памяти;
- развитый аппарат вызова процедур.
В 1968 году была разработана его новая существенно усовершенствованная версия Алгол -68 – международный универсальный алгоритмический язык.
Одновременно с Алголом в 1959 – 1960 г.г. разработан язык программирования Кобол (COBOL) – специально ориентированный на разработку бизнес - приложений. Автором языка является Грейс Хоппер.
В эти же годы в Массачусетском технологическом институте разработан язык программирования Лисп (LISP), ориентированный на разработку символьной информации. Языки Лисп и Пролог были разработаны для решения задач, относящихся к искусственному интеллекту. Эти языки позволяют обрабатывать символьную (текстовую) информацию, решать логические и математические задачи. На базе языка Лисп разработана известная математическая система Derive.
Язык Пролог является непроцедурным языком логического программирования. Он выбран основным языком при разработке ЭВМ пятого поколения, которые должны обладать искусственным интеллектом.
Дж. Кемени и Т. Курц. Разработанный ими в 1964 году алгоритмический язык BASIC (русская транскрипция – Бейсик) с большим успехом решил поставленную задачу.
Название BASIC является аббревиатурой английской фразы «Beginners All – purpose Symbolic Instruction Code» - многоцелевой язык символических команд для начинающих. Во многом язык в своей разработке обязан языку Фортран.
Важной чертой языка BASIC является не только его простота и доступность, но и предоставляемая им возможность решать задачи с терминалов в режиме разделения времени (в режиме диалога с ЭВМ). В настоящее время имеется множество различных модификаций этого языка. Одна из них - QuickBASIC (QBASIC) поставляется с операционной системой Windows.
Такое обилие языков программирования, появившихся в период разработки и внедрения ЭВМ второго поколения, объясняется невозможностью ни одним из существовавших языков описывать все возникшее к тому времени разнообразие задач.
Третье поколение ЭВМ поставило на повестку дня вопросы поиска нового подхода к созданию универсального алгоритмического языка. Одной из первых попыток такого рода явилось создание фирмой IBM в 1963-1966 г.г. многоцелевого универсального языка PL/1 – Programming Language (отечественная транскрипция ПЛ/1). В основу этого языка были положены языки Фортран, Алгол и Кобол. Язык обладает широким набором средств для эффективного описания вычислительных процессов, задач обработки данных, обработки символьной информации, процессов моделирования, решения логических задач, исследования логических схем, решения задач в реальном масштабе времени и даже для разработки систем математического обеспечения
В 1968-1971 годах Никласом Виртом, профессором Цюрихского Федерального института информационных технологий (Швейцария) был разработан универсальный язык программирования Паскаль (PASCAL), в основе которого лежат основные достоинства языков Алгол-60 и ПЛ/1.
В Паскале реализована идея структурного программирования, благодаря которой реализуется модульное программирование, позволяющее над разработкой сложных программных комплексов одновременно работать нескольким группам программистов.
На основе Паскаля в конце 70-х годов ХХ века по заказу Министерства обороны США во Франции был разработан язык программирования Ада. Это хорошо структурированный язык, однако, слишком громоздкий и многословный. Язык Ада используется при разработке программного обеспечения компьютерных систем, встроенных в самонаводящиеся ракеты, космические аппараты, самолеты и другие подобные объекты. Такие системы работают в реальном масштабе времени, где накладываются чрезвычайно жесткие требования на быстродействие.
Язык Ада поддерживает параллельное выполнение задач в многомашинных и многопроцессорных вычислительных системах. В этом случае программа распараллеливается и отдельные ее операции и составные части выполняются одновременно на нескольких процессорах (нескольких ЭВМ).
Наряду с Адой, имеется язык Linda, специально разработанный для параллельной обработки данных. При использовании этого языка вычислительный процесс делится на группу процессов, среди которых выделяется один – главный. Все процессы выполняются одновременно на разных процессорах и синхронизируются относительно друг друга.
К языкам параллельного программирования относятся также языки Erlang, Modula, Occam.
Создание языков высокого уровня несомненно внесло огромный вклад как в разрешение сложных научных проблем, так и в значительное приближение к программированию простых пользователей. Так, полная программа сложения двух чисел 5 и 7, рассмотренная для машинных языков и языка Ассемблера, создается на языке Паскаль достаточно просто и имеет следующий вид.
PROGRAM ADD(INPUT,OUTPUT);
VAR A,B,C:INTEGER;
BEGIN
A:=5;
B:=7;
C =A+ B;
WRITE (C);
END.
37. Объектно–ориентированная технология программирования/ Системы объектно-ориентированного визуального программирования ООП позволяет декомпозировать задачу на самостоятельные части. Каждая составляющая программы является самостоятельным объектом, содержащим свои собственные коды и данные, относящиеся к нему.
Приложения на языках ООП строятся из объектов.
Объект – замкнутая независимая сущность, взаимодействующая с внешним миром через строго определенный интерфейс в виде перечня принимаемых сообщений. Объекты обладают определенным набором свойств, методов и способностью реагировать на события (нажатия кнопок мыши, истечение заданных интервалов времени и т.д.). В отличие от процедурного программирования, где порядок выполнения операторов программы определяется порядком их следования и командами управления, в ООП порядок выполнения процедур и функций определяется событиями.
Структурно объекты состоят из двух частей: методов и переменных.
Объекты с одинаковыми свойствами и поведением объединяются в классы. Классы, в свою очередь, представляют собой описания свойств и поведения составляющих их объектов. Свойства представляются другими более простыми объектами, а поведение описывается сообщениями, которыми обмениваются объекты.
Методы представляют собой набор процедур и функций, определяющих алгоритм работы объекта.
Переменные могут содержать как простые данные (числа, массивы, текст и т.д.), так и информацию сложной структуры (графика, звук и т.д.).
Объектно–ориентированное программирование характеризуется тремя признаками:
- инкапсуляция;
- наследование;
- полиформизм.
Инкапсуляция означает, что объекты скрывают детали своей работы. Она позволяет разработчику объекта изменять внутренние принципы его функционирования, не оказывая никакого влияния на пользователя объекта.
Наследование означает, что новый объект можно определить на основе уже имеющихся объектов, при этом он будет содержать все свойства и методы родительского. Наследование полезно, когда требуется создать новый объект, обладающий дополнительными свойствами относительно старого, причем потомок может унаследовать способности и от нескольких родителей.
Полиформизм означает, многие объекты могут иметь одноименные методы, которые могут выполнять разные действия для разных объектов. Например, оператор «+» для числовых величин означает выполнение операции сложения, а для текстовых – операции склеивания.
Первым объектно-ориентированным языком программирования был, разработанный в Норвежском вычислительном центре в в 1967 -1968 г.г, язык Simula -67 (Симула) . В основе языка лежит язык программирования Алгол -60. В языке Simula -67 впервые введено понятие «объект». Объекты вводятся путем описания класса, задающего правила действия объектов и состав данных, носителями которых являются объекты.
В настоящее время разработано и используется несколько языков ООП: Турбо-Паскаль, Object Pascal, Дельфи, C++, С# (Си шарп), Java (Джава), JavaScript и др.
Системы объектно-ориентированного визуального программирования
Современные языки объектно-ориентированного программирования. как правило, применяются в составе систем объектно-ориентированного визуального программирования.
Система программирования – это комплекс программных средств, предназначенный для разработки новых программ на конкретном языке программирования.
В состав системы программирования входят:
- компилятор или интерпретатор;
- «дружественная» интегрированная среда разработки;
- средства создания и редактирования текстов программ;
- обширные библиотеки стандартных программ и функций, а также утилиты для работы с ними;
- отладочные программы, т.е. программы, помогающие обнаруживать и устранять ошибки в рабочих программах;
- встроенный ассемблер;
- встроенная справочная служба и т.д.
Наиболее популярными системами программирования являются: Turbo Pascal, Borland Delphi, C++Builder, MS Visual Basic, MS Visual Basic for Applications, причем две последние системы в основном отличаются друг от друга составом программных библиотек.
Системы ООП предоставляют возможность визуализировать процесс создания графического интерфейса разрабатываемого приложения, т.е. позволяют создавать объекты и задавать значения их свойств с помощью диалоговых окон системы программирования. Взаимодействие же программных объектов между собой и их изменения описываются с помощью программного кода.
Таким образом, основной единицей в ООП является программный объект, который объединяет в себе как описывающие его данные (свойства – Properties), так и средства обработки этих данных – методы (Methods). Если говорить образно, то объекты – это «существительные», свойства объектов – это «прилагательные», а методы объекта – это «глаголы».
Программные объекты обладают свойствами, могут использовать методы и реагируют на события.
Каждый объект обладает определенным набором свойств (Properties). Первоначальные значения свойств могут быть установлены с использованием диалогового окна системы программирования.
Для того, чтобы объект выполнил какую-либо операцию, необходимо к нему применить соответствующий метод (Method), из набора тех методов (Methods), которыми он обладает.
События (Events) представляют собой действия, распознаваемые объектом. Событие может создаваться пользователем (например, щелчок мышью, нажатие клавиши) или может быть результатом воздействия других программных объектов. Примерами событий являются: Open (Открытие), New (создание), Close (Закрытие) , Cut (Вырезка), Copy (Копирование), Paste (Вставка), Delete (Удаление).
