14. Языки программирования Программисты под руководством Хоппер впервые во всем мире реализовали идею подпрограмм как многократно используемую последовательность команд. Тогда они просто переписывали куски машинного кода друг у друга из блокнотов. Марк-1 Грейс Хоппер Идея подпрограммы 49 По своей сути, это была система обозначений для быстрого ввода в ЭВМ алгебраических выражений. "Краткий код" работал как примитивный интерпретатор. Юнивак Мочли "Краткий код" 49 Немецкий инженер Цузе разработал этот язык для ЭВМ Z4, но ни компилятора, ни интерпретатора для него написано не было (поскольку и язык, и ЭВМ он разрабатывал в одиночку). Z4 Цузе Плюнкалкюль 46 Заметки о языке ЭВМ Создатель Язык (идея) Год
15. Языки программирования Хоппер создала первый ассемблер, который понимал мнемонические команды. Юнивак Грейс Хоппер B-0 56 А-0 был первым полноценным ассемблером, получившим широкую известность. Он предоставлял услуги как компилятора, так и компоновщика. По сути, А-0 представлял первое промышленное средство для создания других программ. Юнивак Грейс Хоппер А-0 52 Автокод был первым полноценным транслятором (компилятором), т.е. он транслировал мнемоническую схему в машинные коды. Марк-1 Гленн АВТОКОД 52 Первый ассемблер представлял из себя систему мнемонических обозначений, объединённую с библиотекой подпрограмм Эдсак Грейс Хоппер Ассемблер 50 Заметки о языке ЭВМ Создатель Язык (идея) Год
16.
17. Языки программирования Заметки о языке ЭВМ Создатель Язык (идея) Год В 59 году в США появилась первая компания, занимающаяся созданием промышленных программ. “ CSC” – первая компания по разработке ПО 59 Первая спецификация Алгола была рождена европейским международным комитетом. ALGOL – 58 58 Был первым языком программирования высокого уровня. Разрабатывался компанией IBM для её новой ЭВМ. Коллектив под руководством Бэкуса разработал не только спецификацию языка, но и создал компилятор для него. Это обеспечило достаточно быструю и широкую распространенность языка. Кроме того, Фортран был первым языком, для которого были разработаны компиляторы для разных ЭВМ (т.е. программа могла выполняться на различных ЭВМ). Лучше всего Фортран подходит для решения инженерных и расчетных задач. IBM-704 Бэкус FORTRAN 54
18.
19. Лекция №2 Эволюция языков программирования (продолжение) Программирование на языке высокого уровня
20.
21.
22. Языки программирования язык, который изначально разрабатывался учёными для обучения детей, чтобы изучать их психологию. Именно он служит первым претендентом на звание первого объектно-ориентированного (ОО) ЯП, так как вся последующая терминология ОО подхода пошла именно оттуда . Smalltalk 72 72 Этот вариант Алгола очень не понравился Вирту. Он как и PL/1 получился слишком большим. Кроме того имел очень сложное описание. Отсутствие реально работающих промышленных компиляторов для Алгола-68 только довершило ситуацию. АЛГОЛ – 68 68 Заметки о языке ЭВМ Создатель Язык (идея) Год Новый стандарт языка, который был предложен Хоаром и Виртом как альтернатива существующей спецификации (буква W – от фамилии Вирт). Хоар, Вирт АЛГОЛ – W 6 6 Создан на основе Алгола 60 для целей имитационного моделирования. В нём впервые появилось понятие «класса». Но этот язык был неэффективен. Симула 67 67
23.
24. Языки программирования Заметки о языке ЭВМ Создатель Язык (идея) Год Универсальный язык программирования, был разработан по заказу МО США. После создания вышло требование переписать все существующие приложения на Аде. Жан Ихбиа АДА 79 HOLWG – рабочая группа по управлением Уайтекера, была создана Пентагоном для получения языка, который мог бы использоваться на всех компьютерах министерства обороны США. Результатом в 79 году стал язык Ада. Уайтекер HOLWG 75 Логический язык программирования, в котором описываются факты и отношения между ними. Алан Колмери ПРОЛОГ 72 Язык был разработан для написания операционной системы UNIX. В рекламных целях UNIX в университетах распространялся почти бесплатно, вместе с UNIX’ом распространялся и С. До сих пор С – один из лучших языков для системного программирования. Керниган, Ричи, Bell Lab. С 72
25. Языки программирования Заметки о языке ЭВМ Создатель Язык (идея) Год Универсальный язык программирования, был разработан по заказу МО США. После создания вышло требование переписать все существующие приложения на Аде. Жан Ихбиа АДА 79 HOLWG – рабочая группа по управлением Уайтекера, была создана Пентагоном для получения языка, который мог бы использоваться на всех компьютерах министерства обороны США. Результатом в 79 году стал язык Ада. Уайтекер HOLWG 75 Логический язык программирования, в котором описываются факты и отношения между ними. Алан Колмери ПРОЛОГ 72 Язык был разработан для написания операционной системы UNIX. В рекламных целях UNIX в университетах распространялся почти бесплатно, вместе с UNIX’ом распространялся и С. До сих пор С – один из лучших языков для системного программирования. Керниган, Ричи, Bell Lab. С 72
26.
27. Языки программирования Оберон отличается от Модулы-2 отсутствием многих необязательных конструкций; добавлены же в язык средства объектно-ориентированного программирования -- расширяемые записи. Оберон -- это самый простой универсальный язык. Никлаус Вирт Oberon 87 Язык создавался в помощь системному администратору операционной системы Unix для обработки различного рода текстов и выделения нужной информации. Развился до мощного средства работы с текстами. Является интерпретируемым языком и реализован практически на всех существующих платформах. Применяется при обработке текстов, а также для динамической генерации веб-страниц на веб-серверах. Ларри Уолл Perl 86 Объектно-ориентированное расширение языка С Бьярн Страуструп С++ 85 Заметки о языке ЭВМ Создатель Язык (идея) Год
28. Языки программирования Интерпретируемый объектно-ориентированный язык программирования. По структуре и области применения близок к Perl, однако менее распространен и более строг и логичен. Python 91 Расмус Лердорф PHP 95 Delphi 95 В 1992 году были приняты расширения языка Оберон, предложенные Ханспетером Мёссенбёком. Расширенный язык получил название Оберон-2. Основное нововведение -- связанные с типами процедуры. Сейчас Оберон-2 является фактическим стандартом языка Никлаус Вирт Oberon-2 92 Заметки о языке ЭВМ Создатель Язык (идея) Год
29. Языки программирования C# 99 Наследует синтаксис C и C++ и избавлен от некоторых неприятных черт последнего. Отличительной особенностью языка является компиляция в код некоей абстрактной машины, для которой затем пишется эмулятор (Java Virtual Machine) для реальных систем. Кроме того, в Java нет указателей и множественного наследования, что сильно повышает надежность программирования. Кен Арнольд, Джеймс Гослинг Java 96 Заметки о языке ЭВМ Создатель Язык (идея) Год
83. Вещественные типы -2 63 +1...+2 63 -1 19...20 Comp 8 -4951...+4932 19...20 Extended 10 -324...+308 15...16 Double 8 -39...+38 11...12 Real 6 -45...+38 7...8 Single 4 Диапазон десятичного порядка Мантисса Название типа Длина, байты
84. Вещественные типы Как видно из таблицы вещественное число в Паскале занимает от 4-х до 10 смежных байт и имеет следующую структуру в памяти ПК. Здесь s -знаковый разряд числа; е – экспоненциальная часть, содержит двоичный порядок ; m - мантисса числа. M E S
85. Функции П = 3.141592653... Real - Pi Логарифм натуральный “ “ Ln ( x ) Целая часть числа “ “ Int ( x ) Дробная часть числа “ “ Frac ( x ) Экспонента “ “ Exp ( x ) Косинус (радианы) “ “ Cos ( x ) Арктангенс (радианы) Real Real ArcTan(x) Модуль аргумента Тип аргумента Real, integer Abs(x) Примечание Тип результата Тип параметра Обращение
86. Функции Корень квадратный Real real Sqrt (x) Квадрат аргумента Тип аргумента Real, integer Sqr(x) Синус (радианы) Real Real Sin(x) Инициация датчика случайных чисел - - Randomize Равномерное псевдослучайное целое число 0<= x < i Integer Integer Random(i) Равномерное псевдослучайное число 0<= x <1 Real - Random Примечание Тип результата Тип параметра Обращение
87. Пример var x, y: real; begin write(‘ Введите значение x: ‘); readln(x); y:=(1+sin(2*x))/cos(2*x); writeln(‘ Результат= ’, y:10:3); end.
94. Условный оператор if <условие> then <оператор1> [else <оператор2> ] ; где if , then , else – зарезервированные слова (если, то, иначе); <условие> – произвольное выражение логического типа; <оператор1>, <оператор2>, – любые операторы языка Турбо Паскаль.
95. Алгоритм работы Условный оператор работает по следующему алгоритму. Сначала вычисляется условное выражение <условие>. Если результат есть true (истина), то выполняется <оператор1>, а <оператор2> пропускается; если результат есть false (ложь), наоборот, <оператор1> пропускается, а выполняется <оператор2>.
96. Пример var x, y, max : real; ....... if x>y then max:=x else max:=y; При выполнении этого фрагмента переменная max получит значение переменной x , если это значение больше чем значение y , в противном случае max станет равным y .
97. Пример Часть else <оператор2> условного оператора может быть опущена. Тогда при значении true условного выражения выполняется <оператор1>, в противном случае этот оператор пропускается: var x, y, max : real; ....... if x>max then max:=x; y := x ;
98. Пример Поскольку любой из операторов <оператор1> и <оператор2> может быть любого типа, в том числе и условным, а в то же время не каждый из «вложенных» условных операторов может иметь часть else <оператор2>, то возникает неоднозначность трактовки условий, т.е. непонятно какой else к какому if … then относится. Эта неоднозначность в Турбо Паскале решается следующим образом: любая встретившаяся часть else соответствует ближайшей к ней «сверху» части if … then условного оператора.
99. Пример var a, b, c, d : integer; … a:=1; b:=2; c:=3; d:=4; if a>b then if c<d then if c<0 then c:=0 else a:=b; {a=1} if a>b then if c<d then if c<0 then c:=0 else else else a:=b; {a=2}
121. Var I,sum,del1,n:word; Begin for i:=4 to 10000 do Begin sum:=1; n:= trunc(sqrt(i)); for del1:=2 to n do if I mod del1 =0 then if del1<> I div del1 then begin sum:=sum+del1+(I div del1); end else sum:=sum+del1; if sum=i then writeln(i); End; End.
Он представлял собой дальнейшее развитие языка Би (B), который основывался на созданном в Кембриджском университете языке BCPL (от Basic Combined Programming Language- базовый комбинированный язык программирования), который в свою очередь был потомком Алгола-60.
Он представлял собой дальнейшее развитие языка Би (B), который основывался на созданном в Кембриджском университете языке BCPL (от Basic Combined Programming Language- базовый комбинированный язык программирования), который в свою очередь был потомком Алгола-60.
Вычислительный процесс здесь заключается в следующем: Вычисляется правая часть выражения, полученный результат присваивается переменной, стоящей в левой части. Дискретность, определить, результативность здесь очевидны. Массивность заключается в том, что значение выражения может быть найдено при любом X . При составлении алгоритма целесообразно стремиться к уменьшению числа шагов выполнения алгоритма. Если выражение
1) Служебные (зарезервированные) слова. Их смысл зафиксирован в языке, и поэтому служебные слова нельзя использовать в качестве имен, вводимых программистом. Полный список служебных слов приведен в приложении 1. 2) Имена. Они вводятся для обозначения в программе переменных, констант, типов, проедур и функций. Имена формируются из букв и цифр. Первым символом имени должна быть буква. Длина имени не должна превышать 63 символа. Заглавные и строчные буквы в именах не различаются. 3) Числа и символьные строки. 4) Знаки операций и разделители. Они формируются из одного или нескольких специальных символов. 5) Комментарии. Они представляют собой произвольную последовательность символов (не обязательно из алфавита языка, то есть допускаются и русские буквы), заключенную в фигурные скобки { }. Комментарии не изменяют смысл программы, не влияют на ее выполнение и предназначены для пояснений. Для отделения лексем друг от друга используются символы пробелов или же лексемы должны быть размещены на различных строках программы.
4110 лек 4
Кол лекция 4
Лек 5 ПЯВУ добавить таблицы лог операций, div, mod Кол лек 5