Лекция: 45 сағат С¤Ж: 45 саѓат обс¤Ж: 45 саѓат Барлыќ саѓат саны: 135 саѓ Ќорытынды баќылау: емтихан 2 семестр


Лекция 13 Тақырыбы: Флойд әдісі бойынша программаның дұрыстығын дәлелдеу



бет11/31
Дата24.04.2016
өлшемі1.97 Mb.
#79257
түріЛекция
1   ...   7   8   9   10   11   12   13   14   ...   31

Лекция 13

Тақырыбы: Флойд әдісі бойынша программаның дұрыстығын дәлелдеу



1. Түйін нүктелер. Программаның орындалу жолдары

2. Верификациялау шарттарының ақиқаттығын тексеру
1. Флойд әдісі бойынша программаның дұрыстығын дәлелдеу дегенміз соңғышарттың ақиқаттығы алғышарт ақиқаттылығынан және барлық аралықшарттар ақиқаттылығынан шығатындығын дәлелдеу.

Сонымен талданатын Р программасы р12,...,ри программалық бірліктерінен тұрғызылған болсын, яғни, әрбір программалық бірлік р1(t=1,n) меншіктеу операторы, тармақталу операторы, тармақталу операторы, қайталану операторы немесе, топталу операторы болады. Р программасының верификациялау шарты cν (Р,ірр) арқылы белгіленсін, яғни,

cν (Р,ірр)→(ір(Х,)∩rр1(х,у)|р2 )&( rр1(х,у) ∩ rр2(х,у)р2) &...&( rрn-1(х,у) ∩ор(X,y)
М±нда енгізу векторы Х(х12), Х1-бµліггіш, х2-бµлгіш ; аралыќ векторы (у12), у1-аралыќ бµлінді, у2-аралыќ ќалдыќ;

Шыѓару векторы Z=(z1,z2), z1-бµлінді, z2-ќалдыќ.

a,b жєне c-программаныњ т‰йін н‰ктелері, б±л н‰ктелерде келесі т±жырымдар ќ±рылады:

a: ір12)х1 0х2 0

b: rp1(x1,x2,y1,y2)x1=y1*x2+y2y20

c: op(x1,x2,z1,z2)x1=z1*x2+z2z20x2z2


b т‰йін н‰ктесінде ќайталау тілінеді, нєтижесінде программа ‰ш жолѓа бµлінеді: бірінші жол-а-дан b-ѓа дейін (1-ші жєне 2-ші жол кесінділері), екінші жол ќайталау бойынша b-дан b-ѓа дейін (2-ші, 3-ші жєне 4-ші жол кесінділері), ‰шінші жол b-дан c-ѓа дейін (2-ші, 5-ші жєне 6-шы жол кесінділері).

Верификациялау шарттарын ќ±ру жол операторларын кері баѓытта (ретте) ќарастыру нєтижесінде ж‰зеге асырылады.

Бірінші жол ‰шін:
Ір12,) (х1212,)у10,у2х1

Яѓни, х10х20х10*х12х10

Екінші жол ‰шін:

rp11212,)(у2х2rp21212,)у1у+1,у2у2-х2


Үшінші жол үшін:
rp2(X1, X2, y1, y2) (x2 y2 op (x1,x2,z1,z2) z1=y1 ),

z2=y2


яғни,

x1=y1x2+y2  y2 O (x2y2x1=y1* x2+y2  y2  O  x2  y2) (3)


2. Берілген программаның дербес дұрыстығын дәлелдеу, осы программадағы барлық жолдарға арнап құрылған (1), (2) және (3) верификациялау шарттарының ақиқаттығын орнатуға келіп тіреледі.

(1)- формуладан арифметикалық амалдардф орындап біткен соң мынадай x1   x2  o  x1=x1 x1 o логикалық өрнек шығады, мұндағы x1=x1- 2h әр қашанда ақиқат (тавтология), сондықтан оны қысқартып тастап өрнектен мынадай X1Ox2Ox1 O формула алуға болады.

(2)- формуладан арифметикалық амалдарды орындап біткен соң және (С) және С түріндегі формулалардың логикалық теңмәнділігін, сондай-ақ, конъюнкцияның коммутативтілігін ескере отырып,  түріндегі аксиоманы (мәні әрқашан ақиқат формуланы) алуға болады, яғни,
x1=y1* x2+y2 y2x2  y2 O x1=y1 * x2+y2x2

A B A


(3)- формуланы түрлендіре отырып D D түріндегі аксиоманы алуға болады, мұнда D арқылы мына х1=y1 *x2+y2  y2 x2 y2 әрнегі белгіленеді.

Енді алынған (1), (2) және (3) верификациялау шарттарының ақиқаттығын тексеру үшін мән орнату функциясы VAL-ң көмегімен х1 және х2 енгізу айнымалылары үшін нақты тестілік деректер алайық, мысалы, VAL (х1, х2) = (7,3) болсын. Сонда верификациялау шарттары бойынша айнымалылар үшін келесі мәндерді аламыз:


7О 3О 7=О*7+7  7О; (1)

7=1*3+4 & 4O (43 Й 7=(1+1)* 3+4-3 & 43; (2)

7=2*3+1& 1 O  (317=2*3+1& 31) (3)

(1’’). (2’’)және (3’’) өрнектердің ақиқаттығы көрініп тұр, яғни, P программасын верификациялау шарты сv (Р, і, о ) ақиқат болады, ол жоғарыдағы теорема V. 1 бойынша ір {p}op-ң ақиқаттығын көрсетеді. Ендеше, біз қарастырған бүтін санды бүтін санға бөлуді орындайтын З программасы дербес дұрыс.



Лекция 14

Таќырыбы: Программалау тілдерініњ сипаттары





  1. Машиналық тіл. Жасанды тіл.

  2. Программаның орындалуы

1. Алгоритмніњ машиналыќ тілдегі бейнесі программа деп аталады. Ал программа жазуѓа арналѓан тілі программалау тілі дейді. Сондыќтан машиналыќ тілдердегі барлыќ б±йрыќтар мен н±сќаулар комьпютердіњ ќ±рамына кіретін функционалдыќ бµліктер арќылы орындалады. Машиналыќ тілдер комьпютерлердіњ алѓашќы интеллектуалдыќ (зерделік) дењгейін аныќтайды. Кейін неше т‰рлі программаларды комьпютердіњ жадына саќтай отырып, оныњ интеллектуалдыќ дењгейін кµтеруге болады.

Машиналыќ тіл де барлыќ б±йрыќтар мен н±сќаулар тек “0” мен “1”-ден т±ратын тізбектер арќылы арќылы бейнеленеді. Сондыќтан машиналыќ тіл де программаларды жазу адам ‰шін µте ќиын. Себебі бір жаѓынан барлыќ амалдар мен н±сќаулардыњ екілік бейнелерін (кодтарын) есте саќтау керек, екіншіден кез келген алгоритімді осы машиналыќ амалдар мен н±сќаулар арќылы µрнектеліп білу ќажет. Алѓашќы деркетер, нєтиже жєне олардыњ адрестері екілік сандар арќылы бері леді. Тармаќталу н±сќауын жазу ‰шін басќару беретін адресті ќолмен есептеу ќажет Сол сияќты т±рын істелмеген кµптеген ж±мыстарды басынан бастап ќайтадан жасау керек. М±ныњ бєрі бір ден кµзге кµрінбейтін еµптеген ќателер жіберуге соќтырады. Жазылѓан программалар оќуѓа жєне т‰сінуге ќолайсыз болѓандыќтан, олардыњ ішіндегі жіберілген ќателерді тауып т‰зету µте кµп уаќытты жєне жылдамдылыќты ќажет етеді. Сондыќтан адамдар µздерініњ ж±мыстарын жењілдету ‰шін программа жазуѓа ыњѓайлы басќа жасанды тілдер ойластыра бастады.
2. Жасанды тілі компюьтер µзініњ машиналыќ тіліне адамныњ ќатысуынсыз (автоматты т‰рде) аударатындай етіп жасайды. Аударуды программа орындайды. Ондай программаны аѓылшын тілінде “транслятор” (аудармашы) деп атайды, ал аудару процесін “трансляция” дейді. Сондыќтан программаны жасанды тіл де пайдаланып жазѓан кезде комьпютердіњ ж±мысы екі кезењнен т±рады.


  1. Жасанды тілден машиналыќ тілге трансляциялау;

  2. Машиналыќ тілдегі программаны орындау.

Программаны орындаудаѓы осы екі кезењде кµрсетілген ж±мысты ж‰зеге асырудыњ екі т‰рлі єдісі бар:

1.Компиляция єдісі-алдымен жасанды тілдегі программа т‰гелдей машиналыќ тілге аударылады, сонан кейін б±л программа басынан орындалады.

2.Интерпретация єдісі- жасанды тілдегі программаныњ єрбір єрекеті (н±сќауы немесе амалы) жеке алдын ала аударылмастан бірден машиналыќ тілде орындала бастайды.

Яѓни, компиляция єдісінде жасанды тілдегі программа тек ќана бір рет ќарастырылады жєне аударылѓан программаны бірнеше рет орындауѓа болады, ал интерпретация єдісінде єр орындау алдында жасанды тілдегі программаны ќайтадан ќарастыру ќажет. Сондыќтан компиляциялау єдісі бойынша шыќќан орындалуѓа дайын программа жылдам ж±мыс істейді, біраќ программаны т‰гел орналастыру ‰шін жадыныњ кµп орнын алады. Керсінше, интерпретациялау єдісі жадыныњ аз кµлемін ќажет етеді де, біраќ аќыры (шабан) ж±мыс істейді.

Сонымен осындай жасанды тілдер де комьпютерге т‰сінікті болады, сондыќтан оларды да біз программалау тілдері дейміз.

Ќазіргі кезде комьпютердіњ кµмегімен єрт‰рлі есептерді шыѓаруѓа м‰мкіндік беретін сан алуан программалау тілдері бар. Єр тілдіњ кемшілігі де, жетістігі де бар. Мысалы, кейбір тілде программаны жазу оњай болѓанымен оны орындау µте кµп уаќытты талап етеді немесе жадыныњ кµп орнын алады.





Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   ...   31




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет