48
Инструментальное ПО 1. Алгоритмизация 2. Языки программирования 3. Системы программирования

13 алгоритмизация, программирование, инструментальное по

Embed Size (px)

Citation preview

Page 1: 13 алгоритмизация, программирование, инструментальное по

Инструментальное ПО

1. Алгоритмизация2. Языки программирования3. Системы программирования

Page 2: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 2

Алгоритмизация Алгоритмизация Понятие алгоритма

Слово алгоритм происходит от латинской транскрипции имени родившегося в Хиве узбекского математика IX в. Аль-Хорезми (Algorithmi). Из его трактатов Европа познакомилась с десятичной позиционной системой счисления, где, в частности, были сформулированы четкие правила выполнения четырех арифметических действий.

Page 3: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 3

Алгоритмизация Алгоритмизация Понятие алгоритма

Алгоритм - есть точное формальное предписание, однозначно определяющее содержание и последовательность операций, переводящих заданную совокупность исходных данных в искомый результат".

Page 4: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 4

Алгоритмизация Алгоритмизация Понятие алгоритма

ТОРТ(название)

сахар масло ... ...

растереть добавить

ЧТО ?

ИЗ ЧЕГО ?

КАК?

алг имя алгоритма

( тип имя1, имя2, тип имя3) арг имя1, имя2, ... рез имя3, ...

нач оператор 1; оператор 2;... кон

РЕЦЕПТ

Page 5: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 5

Алгоритмизация Алгоритмизация Составные части алгоритма

1. Правило начала;2. Совокупность исходных данных;3. Правило непосредственной обработки;4. Совокупность промежуточных

результатов;5. Правило извлечения результата;6. Правило окончания.

Page 6: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 6

Алгоритмизация Алгоритмизация Свойства алгоритма

Массовость Дискретность Определенность Результативность Конечность Формальность

Page 7: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 7

Алгоритмизация Алгоритмизация Способы записи алгоритмов

Словесный Словесно-формульный Графический На алгоритмическом языке

начало

x1, x2, y1, y2

D

конец

212

212 )()( yyxxD

begin integer i, n; real s; real array x[1:n]; s:=0; for i:=1 step 1 to n do s:=s+x[i]; s:=s/nend

Page 8: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 8

Алгоритмизация Алгоритмизация Элементы блок-схем

Преобразование данных в форму, пригодную для обработки (ввод в память ЭВМ) или регистрации результатов обработки (вывод)

Ввод-вывод

Проверка условий. Указывает выбор направления выполнения алгоритма в зависимости от некоторых условий

Решение

Вычислительное действие или последовательность вычислительных действий

Процесс

ПоясненияСимвол, названиеОбозначение

Начало, конец, прерывание процесса обработки данных

Пуск - останов

Page 9: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 9

Алгоритмизация Алгоритмизация Элементы блок-схем

Указание связи между прерванными линиями потока информацииСоединитель

Изображение последовательности связей между символамиЛиния потока

Вывод, печать результатов на бумагеДокумент

Выполнение действий, меняющих команды или группы команд

Модификация

Page 10: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 10

Алгоритмизация Алгоритмизация Базовые алгоритмические конструкции

Линейным называют вычислительный процесс, в котором этапы вычислений выполняются в линейной последовательности и каждый этап выполняется только один раз

Разветвляющийся вычислительный процесс реализуется по одному из нескольких заранее предусмотренных направлений в зависимости от выполнения некоторого условия (рис. 35, а).

Циклический вычислительный процесс включает участки, на которых вычисления выполняются многократно по одним и тем же математическим формулам, но при разных значениях исходных данных.

Page 11: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 11

Алгоритмизация Алгоритмизация Линейный вычислительный процесс

212

212 )()( yyxxD начало

x1, x2, y1, y2

D

конец

212

212 )()( yyxxD

Page 12: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 12

Алгоритмизация Алгоритмизация Разветвляющийся вычислительный процесс

axåñëèax

axåñëèaxåñëèxa

y),cos(,1, начало

x, a

x < a ?

x = a y = a - x

y = 1 y = cos (x-a)

y

конец

да нет

да нет

Page 13: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 13

Алгоритмизация Алгоритмизация Циклический вычислительный процесс

Для организации цикла необходимо предусмотреть:

1.задание начального значения параметра цикла - переменной, которая будет изменяться при повторении цикла;

2.изменение значения этой переменной перед каждым новым повторением цикла;

3.проверку условия окончания повторений по значению параметра и переход к началу цикла, если повторения не закончены.

Пример. Составить таблицу значений функции у = вх2-а для -1 < x < 1 c шагом ∆х = 0.2 .

начало

a, b, xn, xk, x

x = xn

y = bx2-a

x = x+∆x

x, y

x < xk

конец

нет

да

1

2

4

3

6

5

Page 14: 13 алгоритмизация, программирование, инструментальное по

Алгоритмизация Алгоритмизация Принципы структурной алгоритмизации

Структурная алгоритмизация основывается на двух принципах:

1) последовательная детализация "сверху - вниз"; 2) ограниченность базового набора структур Достоинства структурного программирования: 1) возможность преодоления барьера сложности программ

(сложная задача разбивается на достаточно простые, легко воспринимаемые части);

2) возможность демонстрации правильности программ на различных этапах решения задачи;

3) наглядность программ; 4) простота модификации (внесение изменений) программ;

© Ломакин С.В. каф.ИОМАС ВГАУ 14

Page 15: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 15

Инструментальное программное обеспечение (Software Tools)

Инструментальные программные средства (software tools) - совокупность программ, которые используются в процессе разработки программ.

Инструментальное ПО

Языки программирования

Трансляторы Системы программирования

Page 16: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 16

Языки программирования Язык программирования - это система обозначений, служащая

для точного описания программ или алгоритмов для ЭВМ. Языки программирования являются искусственными языками, в которых синтаксис и семантика строго определены. Поэтому они не допускают свободного толкования выражений, характерного для естественного языка.

Основные требования, предъявляемые к языкам программирования:

наглядность - использование в языке по возможности уже существующих символов, хорошо известных и понятных как программистам, так и пользователям ЭВМ;

единство - использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма.

гибкость - возможность относительно удобного, несложного описания распространенных приемов математических вычислений

модульность - возможность описания сложных алгоритмов в виде совокупности простых модулей

однозначность – недвусмысленность используемых инструкций.

Page 17: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 17

Языки программирования Простейшей конструкцией языка программирования является

оператор. Различают языки программирования низкого и высокого уровня.

К языкам низкого уровня относят машинный язык, который представляет собой последовательность команд, записанных в двоичных кодах. Каждое слово машинного языка управляет тем или иным действием ЭВМ - арифметическими, логическими, вспомогательными операциями и т.д. Языки этого вида позволяют наиболее полно использовать аппаратные возможности ЭВМ. Они были первыми языками общения человека с ЭВМ.

Недостатки: трудоемкость программирования и отладки из-за отсутствия средств

автоматизации этих процессов отсутствие наглядности Необходимо подробно представлять себе все детали структуры и

работы ЭВМ. Языки программирования высокого уровня позволяют кратко

(лаконично) и вместе с тем емко определять задания для вычислительной машины в терминах, соответствующих некоторой области применения и близких к разговорному языку.

Page 18: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 18

3.3.22. Языки и системы программирования. Языки и системы программированияПредыстория Предыстория

Первая попытка создать высоко-уровневый язык программирования принадлежит гениальному Конраду Цузе (конец 1940-х годов), разработавшему Plancalcul (планировщик вычислений).

«Plancalcul родился исключительно как результат теоретической работы, без всякой связи с тем, появится или нет в обозримом будущем машины, подходящие к программам на Plancalcul».

Фрагмент рукописи Цузе с шахматной программой на языке Plancalcul

Page 19: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 19

3.3.22. Языки и системы программирования. Языки и системы программирования

Наиболее активный период разработки языков и систем программирования приходится на 1960-е годы.

За это десятилетие в мире родилось более тысячи разнообразных языков, как универсальных, так и специализированных, но выжили и доросли до XXI века дожили немногие, в том числе бессмертные Fotran, Basic, Algol, Cobol, Simula, Lisp и их потомки.

На рисунке: «вавилонская башня» языков программи-рования, созданных в 1960-е годы

Page 20: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 20

3.3.22. Языки и системы программирования. Языки и системы программирования

Родословная основных высокоуровневых языков программирования

Cobol

Fortran Fortran-77

Basic Visual Basic

Algol-68

Altair-Basic

Fortran-IV

Cobol-85

IMS dBASE FoxPro

Visual FoxPro

Visual Basic

Fortran

Cobol

SQLSQL

Pascal

Algol-60

PL/1

TurboPascal

Object Pascal

Ada

Ada

Simula Simula-67

SmalltalkSmalltalk

B C C++

JavaJava

Visual C++

Lisp

Prolog

Lisp

Prolog

DelphiDelphi

Visual C++

Modula

VisualFoxPro

Simula

Modula

1960 1970 1980 1990 2000

LogoLogo

Page 21: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 21

3.3.22. Языки и системы программирования. Языки и системы программированияБессмертный Бессмертный Fortran Fortran

Fortran = FORmula TRANslator

Первый высокоуровневый язык программирования Fortran был разработан в фирме IBM под руководством Джона Бэкуса (Backus, John; р. 1924).

Работа над языком началась в 1954 г., первая реализация для IBM 704 в выполнена в 1957 г.

1960 1970 1980 1990 2000

Fortran Fortran-77

Basic

Fortran-IV

Algol-60

Fortran

Page 22: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 22Фрагмент программы на языке Fortran

C MAIN PROGRAM

101 FORMAT(208)

102 FORMAT(//’N=’,15, 5X, ’R=’, 15

1//6X, ’M’, 5X, PROB)

103 FORMAT(18, F14.10)

201 READ(1,101) N, IR

WRITE(3,102) N, IR

IF(N) 202, 202, 203

202 STOP

203 IF(IR) 202, 202, 204

204 M=O

P=COMBF(N,M)*COMBF(IR-1,N-M-1)

1/COMBF(N+IR-1,IR) ...

3.3.22. Языки и системы программирования. Языки и системы программированияБессмертный Бессмертный Fortran Fortran

Page 23: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 23

3.3.22. Языки и системы программирования. Языки и системы программированияBasic – Basic – язык для начинающихязык для начинающих

BASIC = Beginners All-purpuse Symbolic Instruction Code

Язык Basic был разработан в 1964 г. в Дармутском колледже в г. Хановере (Darmouth College, Hanover), штат Нью-Хемпшир

Fortran

BasicVisualBasicAltair-Basic

Fortran-IV

1960 1970 1980 1990 2000

Page 24: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 24

3.3.22. Языки и системы программирования. Языки и системы программированияBasic – Basic – язык для начинающихязык для начинающих

Авторы языка Basic. Стоит Джон Кемени (Kemeny, John G.; 1926-1993), сидит Томас Курц (Kurtz, Thomas E.; р. 1928)

10 dim A(5)

20 for i=1 to 5

30 input A(i)

40 next i

50 if i=5 then goto 140

60 if A(i)<=A(i+1) then goto 90

70 i=i+1

80 goto 130

90 z=A(i)

100 A(i)=A(i+1)

110 A(i+1)=z

120 i=1

130 goto 50

140 for i=1 to 5

150 print A(i)

160 next i

Простейшая программа на языке Basic

Page 25: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 25

Будущие создатели Microsoft Пол Аллен (Allen, Paul; р. 1954) и Билл Гейтс (Gates, William; р. 1955) познакомились с Бэйсиком, работая в

компьютерном классе школы в Сиэтле (снимок 1968 г.)

3.3.22. Языки и системы программирования. Языки и системы программированияBasic – Basic – язык для начинающихязык для начинающих

Page 26: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 26

Начав с Бэйсика, компания Microsoft превратилась в крупнейшую

софтверную империю, а Билл Гейтс –стал самым богатым человеком на

планете

3.3.22. Языки и системы программирования. Языки и системы программированияBasic – Basic – язык для начинающихязык для начинающих

Штаб - квартира корпорации Microsoft в Редмонде (пригород Сиэтла)

Page 27: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 27

На протяжении нескольких десятилетий Visual Basic оставался фирменный языком компании Microsoft. В начале

1990-х годов он стал объектным и приобрел средства визуального проектирования

3.3.22. Языки и системы программирования. Языки и системы программированияBasic – Basic – язык для начинающихязык для начинающих

Page 28: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 28

3.3.22. Языки и системы программирования. Языки и системы программированияPascal Pascal и его потомкии его потомки

Член комитета по Алголу-68 Никлаус Вирт (Wirth, Niklaus; р. 1934) был против принятия переусложненного стандарта.

В знак доказательства своей правоты он разработал в 1971 г. простой и ясный алголоподобный язык, предназначенный прежде всего для обучения студентов в Федеральном техническом университете в Швейцарии. В честь изобретателя первой вычислительной машины Вирт назвал язык Паскалем.

PascalAlgol-60

TurboPascal

Object Pascal

Ada

Ada

DelphiDelphi

Modula

Algol-68 Modula

Smalltalk

1960 1970 1980 1990 2000

Page 29: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 29

Программа на Паскале, вычисляющая среднее

арифметическое n чисел

var

i, n: integer;

s: float;

x: array[1..n] of real;

begin

s:=0;

for i:=1 to n do

s:=s+x[i];

s:=s/n

end.

3.3.22. Языки и системы программирования. Языки и системы программированияPascal Pascal и его потомкии его потомки

Page 30: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 30

Среда разработки Delphi фирмы Borland объединила передовые достижения технологии программирования: объектное расширение языка Pascal, визуально- событийное проектирование, модульное структурирование и раздельная компиляция.

3.3.22. Языки и системы программирования. Языки и системы программированияPascal Pascal и его потомкии его потомки

Page 31: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 31

3.3.22. Языки и системы программирования. Языки и системы программированияСуперязык Суперязык PLPL/1/1 Cobol

Algol-60

PL/1

1960 1970

EXAMPLE: PROCEDURE OPTIONS (MAIN);

ON ENDFILE (SYSIN) GO TO ENDING;

P1: GET LIST (A, B, C);

D = B*B — 4*A*C;

E = —B/(A+A);

IF D<0 THEN DO;

X1, X2 = E;

Y1 = SQRT(—D)/(A+A);

END;

ELSE DO;

R = SQRT(D)/(A+A);

…Y1 = 0;

END;

Y2 = —Y1;

PUT LIST (X1, Y1, X2, Y2);

GO TO P1;

ENDING:;

END EXAMPLE;

PL/1 = Programming Language One

Язык PL/1 представлял собой механическую смесь идей из многих языков. Критики сравнивали его с елкой со множеством украшений.

Page 32: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 32

3.3.22. Языки и системы программирования. Языки и системы программированияС – язык для профессионаловС – язык для профессионалов

Язык Си (С) был создан Деннисом Ричи (Ritchie, Dennis M.; р. 1941) в 1973 году в Bell Labs в ходе разработки операционной системы UNIX. Он развивал язык Би (B), который основывался на созданном в Кембриджском университете языке BCPL (от Basic Combined Programming Language), который в свою очередь был потомком Алгола-60

1960 1970 1980 1990 2000

Algol-60 Smalltalk

B C C++

Java Java

Visual C++

Visual C++

PL/1

Page 33: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 33

Текст на языке С отличается лаконичностью

float A[5]; for(int i=0;i<5;i++)scanf("%f",&A[i]); i=0; while(i<4){ if(A[i]<=A[i+1])i++; else{ z=A[i]; A[i]=A[i+1]; A[i+1]:=z; i=0; } }; for(i=0;i<5;i++)printf("%f\n",A[i]);

3.3.22. Языки и системы программирования. Языки и системы программированияС – язык для профессионаловС – язык для профессионалов

Page 34: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 34

3.3.22. Языки и системы программирования. Языки и системы программированияJava – Java – дитя интернетадитя интернета

В 1995 г. фирма Sun Microsystems представила язык Java для программирования в интернете.

Он возник в ходе реализации проекта Oak («Дуб»), целью которого было создание системы программирования бытовых микропроцессорных устройств.

Джеймс Гослинг (Gosling, James) – автор Java.

Page 35: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 35

Java - технология

3.3.22. Языки и системы программирования. Языки и системы программированияJava – Java – дитя интернетадитя интернета

InternetВиртуальнаяJava-машина

JVMБайт-код

Компилятор

Исходныйтекст на

Java

Web-браузер

СерверКлиент class test{ int i, n; float s; float x[n]; public static void main( String args[] ) { n = 10; s = 0; for( i=1; i<=n; i++) { s = s + x[i-1]; s = s / n; } }

Язык Java основан на С++

Page 36: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 36

Lisp = LISt Processing

Язык Lisp создан в 1960 году Джоном Маккарти (McCarthy, John; р. 1927 ) в Массачусетском технологи-ческом институте на теоретическом фундаменте лямбда-исчисления, пред-ложенного еще в 1930 году известным американским логиком Алонзо Черчем.

3.3.22. Языки и системы программирования. Языки и системы программированияДолгожитель Долгожитель Lisp – Lisp – инструмент функционального инструмент функционального

программирования программирования Lisp

PrologLisp

1960 1970 1980 1990 2000

Дж. Маккарти и А.П. Ершов Снимок 1975 г.

Page 37: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 37

3.3.22. Языки и системы программирования. Языки и системы программированияProlog – Prolog – несостоявшаяся мечта ЭВМ несостоявшаяся мечта ЭВМ V V поколенияпоколения

Prolog = PROgramming for LOGic

Теоретические основы языка были разработаны Робертом Ковальским (Kowalski, Robert) в Эдинбургском университете (Шотландия) в конце 1960-х годов

Первая практическая реализация языка осуществлена Аленом Кольмари

(Colmerauer, Alain ) в Марсельском университете (Франция) в 1972 г.

1960 1970 1980 1990 2000

PrologProlog

Lisp

Page 38: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 38

Факты:муж (петя), муж (ваня),

муж (коля), жен (таня), жен (маша),

мать (ваня, таня), отец (ваня, петя),

отец (маша, ваня), отец (коля, ваня).

Правила вывода:родитель (X, Y) :— отец (X, Y)

родитель (X, Y) :— мать (X, Y)

дед (X, Y) :— родитель (X, Z), отец (Z, Y)

брат (X, Y) :— муж (Y), родитель (X, Z), родитель (Y, Z), X<>Y

Примеры диалога:GOAL> дед (коля, X) Кто дед Коли?

X = Петя

GOAL> брат (маша, X) Кто брат Маши?

X = Коля

Ж М

М

Ж М

Таня Петя

Ваня

Маша Коля

Описание предметной области семейных отношений на языке Prolog

3.3.22. Языки и системы программирования. Языки и системы программированияProlog – Prolog – несостоявшаяся мечта ЭВМ несостоявшаяся мечта ЭВМ V V поколенияпоколения

Page 39: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 39

Концептуальные отличия ЭВМ V поколения:

• новая технология производства микросхем, знаменующая переход от кремния к арсениду галлия, и дающая возможность на порядок повысить быстродействие основных логических элементов;

• новая архитектура (не фон-неймановская);

• новые способы ввода-вывода информации — распознавание и синтез речи и образов;

• отказ от традиционных алгоритмических языков программирования (Фортран, Алгол и т. п.) в пользу декларативных;

• ориентация на задачи искусственного интеллекта с автоматическим поиском решения на основе логического вывода.

3.3.22. Языки и системы программирования. Языки и системы программированияProlog – Prolog – несостоявшаяся мечта ЭВМ несостоявшаяся мечта ЭВМ V V поколенияпоколения

Page 40: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 40

Язык запросоввысокого уровня Язык ядра

Естественный язык.Общение голосом и

графикой

Системауправления

базами знаний

Системарешения задач

и получениялогического

вывода

Системаинтеллектуального

интерфейса

Машина базызнаний

Машина решениязадач и

получениявыводов

Машинаинтеллектуального

интерфейса

Апп

арат

ные

сред

ства

Про

грам

мны

еср

едст

ваВ

неш

ний

инте

рфей

с

К сетям ЭВМV поколенияСтруктура ЭВМ V поколения

3.3.22. Языки и системы программирования. Языки и системы программированияProlog – Prolog – несостоявшаяся мечта ЭВМ несостоявшаяся мечта ЭВМ V V поколенияпоколения

Page 41: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 41

3.3.22. Языки и системы программирования. Языки и системы программированияУроки историиУроки истории

Ada - ориентированный на применение в системах реального времени и предназначенный для автоматизации задач управления процессами и/или устройствами, например, в бортовых (корабельных, авиационных и др.)

DBASE, FoxPro , SQL (Structured Query Language) – для разработки и обслуживания баз данных

PostScript - является одним из основных стандартов для печати и передачи документов

VRML (Virtual Reality Modelling Language) — язык моделирования виртуальной реальности

Occam - предназначен для организации параллельного программирования и создания транспьютеров

Page 42: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 42

3.3.22. Языки и системы программирования. Языки и системы программированияУроки историиУроки истории

Основные парадигмы программирования:

• процедурное программирование (Fortran, Basic, Cobol, Algol, Pascal, Ada, С, Logo, FoxPro);

• объектно-ориентированное программирование (Simula, Smalltalk, Object Pascal, C++, Java, C#);

• визуально-событийное программирование (Visual Basic, Delphi, Visual C++, Visual Java, Visual FoxPro);

• функциональное программирование (Lisp);

• логическое программирование (Prolog).

Page 43: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 43

Языки программирования Классификация и специализация

Классификация и специализация языков программирования:

- для программирования научно-технических задач - Фортран

- для обучения программированию - Паскаль и Бейсик; - для решения перспективных задач искусственного

интеллекта - Пролог и Лисп; - для решения как научно-технических, так и

экономических задач - многоцелевые универсальные языки ПЛ-1, Алгол-68, Ада.

Для решения задач на конкретных ЭВМ или группах ЭВМ со сходными характеристиками используются машинно-ориентированные языки. Наиболее распространенным языком этого типа является Ассемблер.

Page 44: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 44

Языки программирования Типы данных

ВЕЛИЧИНЫ

ЦЕЛЫЕ

ВЕЩЕСТВЕННЫЕ

НАТУРАЛЬНЫЕ

ЛИТЕРНЫЕ

КОН-СТАН-

ТЫ

ПЕРЕ-МЕН-

НЫЕ

Т И П

ЗНАЧЕНИЕсразу

ИМЯ И ЗНАЧЕНИЕ

как

получаетсятолько место

с индексами простые

пассажир1

пассажир2ИвановПетр

ПетровИван

шофер ИвановИван

автобус

пассажиры

МАССИВ вещ таб P[1:15]

цел таб M[1:N, 1:K]

вещ A цел I нат N лит X

Page 45: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 45

Трансляторы, трансляция программ

Перевод программы с алгоритмического языка на машинный осуществляется ЭВМ с помощью специальной программы, которая называется транслятор. В программе - трансляторе "заложены" все правила алгоритмического языка и способы преобразования различных его конструкций на машинный язык.

Существуют два типа трансляторов: компиляторы и интерпретаторы.

Интерпретатор анализирует исходный текст программы и последовательно транслирует ее на машинный язык по частям (отдельным командам и операторам ) и непосредственно следует выполнение их ЭВМ.

Компилятор производит перевод всей программы в машинные коды с сохранением их в виде объектного модуля. Эти объектные модули могут быть использованы программами написанными на других языках программирования.

Page 46: 13 алгоритмизация, программирование, инструментальное по

Этапы разработки прикладных программ

Существуют различные способы разделения этого процесса на этапы, однако обязательными считаются следующие:

определение требований к задаче (постановка задачи и построение модели);

проектирование (построение алгоритма решения);

программирование; компоновка; тестирование; документирование

© Ломакин С.В. каф.ИОМАС ВГАУ 46

Page 47: 13 алгоритмизация, программирование, инструментальное по

© Ломакин С.В. каф.ИОМАС ВГАУ 47

Page 48: 13 алгоритмизация, программирование, инструментальное по

ИДЕИ, ОСПАРИВАТЬ КОТОРЫЕ БЕСПОЛЕЗНО

1. В любой программе существуют ошибки. Критерий корректности программ - не наличие или отсутствие ошибок, а степень их критичности.

2. Программа никогда не бывает закончена. После написания "окончательного" варианта будут еще изменения (ошибки), которые захочется внести (исправить). Однако желательно где-нибудь остановиться.

3. Чем меньше программа, тем она лучше. Если вы работаете над программой, и ее объем постоянно увеличивается, значит надо ее стереть и вернуться к какой-нибудь предыдущей версии. Улучшать программу можно только до тех пор, пока ее объем уменьшается.

4. Процесс программирования - процесс выбора между эффективностью и универсальностью. Или программа пишется долгое время, но получается универсальной, или она пишется быстро, но получается неуклюжей и громозкой. Задача программиста - выбрать подходящий компромис между эффективностью и универсальностью.

© Ломакин С.В. каф.ИОМАС ВГАУ 48