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

Preview:

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

ЧТО ?

ИЗ ЧЕГО ?

КАК?

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

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

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

РЕЦЕПТ

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

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

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

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

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

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

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

© Ломакин С.В. каф.ИОМАС ВГАУ 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

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

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

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

Ввод-вывод

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

Решение

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

Процесс

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

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

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

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

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

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

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

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

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

Модификация

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

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

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

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

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

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

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

212

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

x1, x2, y1, y2

D

конец

212

212 )()( yyxxD

© Ломакин С.В. каф.ИОМАС ВГАУ 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

конец

да нет

да нет

© Ломакин С.В. каф.ИОМАС ВГАУ 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

© Ломакин С.В. каф.ИОМАС ВГАУ 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

© Ломакин С.В. каф.ИОМАС ВГАУ 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

© Ломакин С.В. каф.ИОМАС ВГАУ 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

© Ломакин С.В. каф.ИОМАС ВГАУ 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

© Ломакин С.В. каф.ИОМАС ВГАУ 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

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

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

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

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

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

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

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

планете

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

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

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

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

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

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

© Ломакин С.В. каф.ИОМАС ВГАУ 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

© Ломакин С.В. каф.ИОМАС ВГАУ 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 и его потомкии его потомки

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

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

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

© Ломакин С.В. каф.ИОМАС ВГАУ 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 представлял собой механическую смесь идей из многих языков. Критики сравнивали его с елкой со множеством украшений.

© Ломакин С.В. каф.ИОМАС ВГАУ 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

© Ломакин С.В. каф.ИОМАС ВГАУ 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. Языки и системы программирования. Языки и системы программированияС – язык для профессионаловС – язык для профессионалов

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

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

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

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

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

© Ломакин С.В. каф.ИОМАС ВГАУ 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 основан на С++

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

Lisp = LISt Processing

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

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

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

PrologLisp

1960 1970 1980 1990 2000

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

© Ломакин С.В. каф.ИОМАС ВГАУ 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

© Ломакин С.В. каф.ИОМАС ВГАУ 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 поколенияпоколения

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

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

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

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

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

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

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

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

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

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

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

графикой

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

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

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

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

вывода

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

интерфейса

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

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

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

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

интерфейса

Апп

арат

ные

сред

ства

Про

грам

мны

еср

едст

ваВ

неш

ний

инте

рфей

с

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

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

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

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

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

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

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

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

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

© Ломакин С.В. каф.ИОМАС ВГАУ 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).

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

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

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

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

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

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

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

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

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

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

ВЕЛИЧИНЫ

ЦЕЛЫЕ

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

НАТУРАЛЬНЫЕ

ЛИТЕРНЫЕ

КОН-СТАН-

ТЫ

ПЕРЕ-МЕН-

НЫЕ

Т И П

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

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

как

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

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

пассажир1

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

ПетровИван

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

автобус

пассажиры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Recommended