- •1.Информатика и её основные задачи.
- •2. Понятие информации и представление данных в эвм.
- •2.1 Понятие иформации
- •2.2Представление данных в эвм
- •3.Информационные системы и информационные технологии.
- •3.1. Информационные системы
- •Классификация по архитектуре
- •Классификация по степени автоматизации
- •Классификация по характеру обработки данных
- •Классификация по сфере применения
- •Классификация по охвату задач (масштабности)
- •3.2.Информационные технологии
- •4. Принципы построения эвм
- •4.1. Поколения компьютеров
- •Основные виды архитектуры эвм
- •5.Классификация вм.
- •6.Структурная схема персонального компьютера.
- •7.Микропроцессор и интерфейсная система компьютера.
- •7.1. Микропроцессор
- •7.2 Интерфейсная система компьютера
- •8.Запоминающие устройства пк
- •9.Устройство ввода данных Клавиатура и манипуляторы
- •2.6.2. Устройства оптического считывания и сенсорные экраны
- •10. Устройство вывода данных. . Видеосистема компьютера
- •2.7.2. Принтеры и графопостроители
- •11. Структура программного обеспечения
- •12.Общие сведения об операционных системах.
- •13.Операционные системы семейства ms Windows.
- •14.Человеко-машинный интерфейс(на примере ос семейства Windows)
- •15.Фаловая система (основные понятия).
- •Иерархия каталогов
- •Классификация файловых систем
- •Задачи файловой системы
- •16.Прикладные программы офисного назначения.
- •17.Текстовый редактор Word (основные понятие)
- •25. Этапы проектирования задач и их разработка.
- •4. Анализ результатов решения задачи.
- •26. Понятие алгоритма (свойства алгоритма).
- •27.Проектирование алгоритмов и основные их типы.
- •28. Эволюция языков программирования.
- •29.Классификация и обзор языков программирования
- •30. Понятия безопасности информационных систем
- •31. Методы защиты информации.
- •32.Компьютерные вирусы и их классификация.
- •Классификация компьютерных вирусов
- •33.Антивирусные средства.
- •34. Совместное использование эвм
- •35. Виды компьютерных сетей
- •36.Классификация вычислительных сетей.
- •37. Базовые топологии локальных компьютерных сетей
- •38.Сеть Интернет(историческая справка и структура интернет)
- •Структура Internet
- •39. Передача информации в Интернете.
- •40.Основные возможности интернет (сервисы Internet)
28. Эволюция языков программирования.
Электронно-вычислительные машины первого поколения находили свое применение (как правило) в сфере научных исследований при проведении сложных расчетов. Программы для них писались непосредственно в машинных кодах, а основными носителям информации были перфокарты и перфоленты. Писать такие программы (состоящих из тысяч команд) - занятие утомительное. Программист должен был помнить комбинацию нулей и единиц двоичного кода каждой программы, а также двоичные коды адресов данных, используемых при её выполнении. Со временем стало понятно, что гораздо проще написать программу на каком-нибудь языке, более близком к естественному, а работу по переводу этой программы в машинные коды поручить компьютеру. Так возникли языки, предназначенные специально для написания программ, - языки программирования (формальная знаковая система, предназначенная для записи программ).
Первым полноценным языком программирования стал язык Assembler - язык программирования низкого уровня, представляющий собой формат записи машинных команд, удобный для восприятия человеком (благодаря ему заметно уменьшилось время разработки и возросла надежность работы программ). Команды этого языка один в один соответствуют командам процессора и, фактически, представляют собой удобную символьную форму записи (мнемокод) команд и их аргументов. Кроме того, язык обеспечивает базовые программные абстракции - связывание частей программы и данных через метки с символьными именами и директивы, которые позволяют включать в программу блоки данных (описанные явно или считанные из файла), повторить определённый фрагмент указанное число раз, компилировать фрагмент по условию, задавать адрес исполнения фрагмента, менять значения меток в процессе компиляции, использовать макроопределения с параметрами и др. Язык ассемблера – машинозависимый. Это обусловлено тем, что каждая команда языка ассемблера обычно транслируется точно в одну команду машинного языка. Так как машинные языки у различных ЭВМ были разные, то и «ассемблеры» тоже различаются.
Следующий шаг - 1954 год, когда был разработан первый язык высокого уровня – Fortran (FORmula TRANslator – переводчик формул), широко используемый при написании программ для сложных научных и инженерных вычислений. Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Они более удобны для человека (с помощью них, можно писать программы до нескольких тысяч строк длиной). Однако легко понимаемый в коротких программах, этот язык становился трудно читаемым и управляемым, когда дело касалось больших программ. Эта задача была решена посредством создания языков структурного программирования, таких как Algol (ALGOrithmic Language - алгоритмический язык) – 1958 г., Pascal (высокоуровневый язык программирования общего назначения) – 1970 г., C (стандартизированный процедурный язык программирования) – 1972 г.
Структурное программирование предполагает точно обозначенные управляющие структуры, программные блоки, отсутствие инструкций безусловного перехода (GoTo), автономные подпрограммы, поддержка рекурсии (вычисление функций по определенному алгоритму) и локальных переменных. Суть такого подхода заключается в возможности разбиения программы на составляющие элементы.
В это же время создавались функциональные (аппликативные) языки, например, Lisp (LISt Processing – «обработка списков») – 1958 г. и логические языки, например, Prolog (PROgramming in LOGic – программирование в терминах логики) - 1972 г. Хотя структурное программирование, при его использовании, дало выдающиеся результаты, но даже оно оказывалось трудным для исполнения тогда, когда программа достигала определенной длинны. Для того чтобы написать более сложную (и длинную) программу, нужен был новый подход к программированию.
В итоге в конце 70-х – начале 80-х гг. прошлого столетия были разработаны принципы объектно-ориентированного программирования, сочетающие лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием. Примером объектно-ориентированных языков являются: Object Pascal (объектно-ориентированный диалект языка Pascal), C++ (компилируемый строго типизированный язык программирования общего назначения, основанный на синтаксисе C), Java (в достаточной степени схож с С++) и др. Объектно-ориентированные языки позволяют оптимально организовать программы, разбивая проблему на составные части и работая с каждой из них по отдельности. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче.
Большинство компьютерных архитектур и языков программирования ориентированы на последовательное выполнение операторов программы, но в настоящее время существуют программно-аппаратные комплексы, позволяющие организовать параллельное выполнение различных частей одного и того же вычислительного процесса. Для программирования таких систем необходима специальная поддержка со стороны средств программирования, в частности, языков программирования. Некоторые языки общего назначения содержат в себе элементы поддержки параллелизма, однако программирование истинно параллельных систем требует специальных приемов. Для этой цели были созданы язык Occam (процедурный язык параллельного программирования высокого уровня) – 1982 г., Linda (язык многопроцессорных систем распределенной обработки данных) – 1985 г. и др.
Появление и активное развитие компьютерных сетей, широкое распространение высокопроизводительных компьютеров и ряд других факторов стали причиной создания многочисленных версий так называемых скриптовых языков. Эта языки первоначально ориентировались на использование в качестве внутренних управляющих языков во всякого рода сложных системах. Однако многие из них вышли за пределы сферы своего изначального применения и используются ныне во многих областях. Характерными особенностями данных языков являются, во-первых, их интерпретируемость (компиляция либо невозможна, либо нежелательна), во-вторых, простота синтаксиса и, в-третьих, легкая расширяемость. Они идеально подходят для использования в часто изменяемых небольших программах. К ним относятся – многоцелевой язык для решения системных задач Perl (1987), язык для описания сложного поведения веб-страниц JavaScript (1995) и др.
Со времени создания первых программируемых машин придумано тысячи языков программирования и каждый год их число пополняется новыми. Некоторыми языками умеют пользоваться лишь небольшое число их создателей, другие становятся известными миллионам людей. В развитии языков программирования специалисты отмечают пять поколений, которые постепенно улучшая свои характеристики, становятся всё более доступными в освоении пользователем. К языкам первого поколения относятся машинно-зависимые языки. Второе поколение характеризуется созданием языков программирования ассемблерного типа. Третье поколение начинается с появления первого языка высокого уровня для решения инженерно-технических и научных задач. Языками четвертого поколения являются языки параллельного программирования, которые в отличие от всех ранее созданных средств ориентированы, прежде всего, на создание системного и прикладного программного обеспечения для вычислительных сред нетрадиционной параллельной архитектуры. Естественные языки программирования, разрабатываемые в настоящее время, составят пятое поколение и позволят непрофессиональному пользователю определять необходимые процедуры обработки информации, используя предложения языка, весьма близкого к естественному и не требующего соблюдения особого синтаксиса.
