Crc press баспасы Taylor & Francis баспа тобы


Бағалау 5.9.1 Тұжырымдамалар мен анықтаулар



Pdf көрінісі
бет25/26
Дата20.12.2019
өлшемі6,26 Mb.
#53875
1   ...   18   19   20   21   22   23   24   25   26
Байланысты:
Бағдарламалау тілдеріне кіріспе (1)
corel-draw-zhayly-zhalpy-tusinik, corel-draw-zhayly-zhalpy-tusinik, Jobs and professions

5.9 Бағалау
5.9.1 Тұжырымдамалар мен анықтаулар
...Абстрактілі  нұсқаулар;  абстрактілі  машина;  белсенді  кеңістігі;  мәні 
бойынша  шақыру;  сілтеме  бойынша  шақыру;  мән  нәтижесі  бойынша 
шақыру;  қала  коды;  бақылау  стек;  деректер  ауданы;  дисплей  динами-
калық сілтемені тіркейді; ерекшелікті өңдеу; стек ерекшелік кадр; кадр 
меңзері; байламы; күтіп ауданы; рекурсивті деректер құрылымын; ре-
курсивті тәртібі; Индекс оралу; стек негізделген бөлу; Статикалық тара-
ту; SECD машина; статикалық сілтеме; стек нұсқауышы; із стек, WAM 
(Уоррен Abstract Machine).
...5.9.2 Тапсырманы шешу
1. X=Y+ 2 + 3 + 5 есептілігін X = Y + + 3 2 + 5 жүзеге асыру үшін төмен 
деңгейлі код ретін жазыңыз.
2. Оператордың іске асыру үшін бақылау логика суретiн салыңыз, содан 
кейін оператордың параметрін іске асыру үшін абстрактілі төмен дең-
гейлі кодты жазу.
3.     Статикалық  бөлу  пайдалана  отырып,  Fortran  66  бағдарламасы  си-
яқты, коды ауданы және келесі деректер аймағын жазу.

269
Program main – негізгі бағдарлама; integer – бүтін; common – жалпы; 
read – оқу; call sort – сұрыптау шақыру; do – орындау; write – жазу; 
end – соңы; subroutine sort – кіші әдетті сұрыптау; call max – макси-
мумды шақыру; return – қайтару; subroutine max – кіші әдеттің мак-
симумы; if – егер; end if – соңы егер
4.   (2)  факториалын  табады  функциясын  жазу  (N)  және  факториалын 
есептеу  үшін  бақылау  стек  көрсету,    бақылау  шақыруының  болғанда, 
факториалын (0) есептейді. 
5. Келесі блок-құрылымдалған тілі үшін стек негізделген бөлуді пайда-
лана отырып келесі бағдарлама бойынша код аймағы мен деректер ай-
мағын жазу. Блок-құрылымдалған тілі трансмиссия параметрлерін үш 
түрін қолдайды деп есептейік: мәні бойынша шақыру, сілтеме бойынша 
шақыру және нәтиже мәні бойынша шақыру. Нақты параметрде сілтеме 
бойынша шақыру «&» деп , ал нақты параметрде мәні бойынша шақыру 
«#» белгізімен белгіленеді. Шақырылған программада нақты параметр-
лер алдында нақты параметрдәі мәніні қол жету «*» белгісімен белгіле-
неді. 
6.   Көпіршікті  сұрыптау  үшін  қарапайым  бағдарламаны  жазу,  бұнда 
онда find-Max айырбас көрші мәндерді пайдалану орнына уақытша max 
сақтау рәсім болып табылады. Ол сілтеме бойынша шақыруды пайдала-
нып жиымын тасымалдайды. Деректер аймағын және кодын көрсетіп, 
және код параметрлерін таңдаңыз. Бақылау негізгі бағдарламада кезде, 
және ол процесс find_max болғанда көрсеткіштер анық анықтау. Массив 
өлшемі 5 делік.
5.9.3 Толық жауап
7.   Статикалық  бөлудің  негізгі  кемшіліктері  қандай?  Статикалық  бөлу 
тұратын гибридті тізбегін  бөлу қалай негізінде в стеке тарату және үй-
мелер ретінде шешеді?

270
8. Стек негізінде іске асыруға кадрларды рөлін түсіндіріңіз. Неліктен ең 
бастысы  жергілікті  кадрмен  шектелген  көріністі  сақтау  керек?  Түсін-
діріңіз.
9. Кіріс және шығыс параметрлерін араластыру артықшылықтары қан-
дай? Схемаларын пайдалану арқылы түсіндіріңіз.
10. Егер сізде стек және үйіндіге негізделген басқару болса, параметрді
ауыстыру механизмін әзірлеңіз. Бұл шақыру программаларын орындау 
кезінде тек оқуға арналған сілтеме бойынша шақыру ретінде жұмыс жа-
сайды. мән қазіргі деп аталатын рәсімін орындау кезінде өзгерсе нақты 
параметр жаңарту шақырды рәсімін соңында нақты параметр қандай да 
бір  өзгерістер  оқиды  және  тасымалдайды.  Сілтемені  бойынша  шақы-
ру мен нәтиже бойынша шақырумен салыстырғанда, осы схеманың ар-
тықшылықтары мен кемшіліктері талқылаңыз.
11. Итератор  жүзеге  асыру  үшін  әдебиетті  қарап,  итераторды  жүзеге
асырудың түрлі әдістері мен мәселелері жазыңыз.
1. Ерекшелік өңдегіштері дегеніміз не және стек негізінде олармен қалай 
жұмыс жасауғу болады? 
2. Ada-дан  шығатын  бірнеше  шартты  дизайнын  таңдау  үшін  бақылау 
логика суретiн салыңыз, және дизайн үшін төмен деңгейлі кодты жа-
зыңыз.
Қосымша әдебиет
1.Брент Р. «Динамикалық жад бөлу үшін бірінші тиісті Стратегиясын
тиімді  жүзеге  асыру».  Бағдарламалау  тілдері  және  жүйелер  ACM 
мәмілелер. 11(3). Июль 1989 года. 388-403.
2.Диль, Стефан, Хартель, Питер и Сештофт, Питер. «Абстрактілі маши-
наның іске асыру үшін тілдерді программалау». Компьютерлік жүйелер 
болашақ ұрпақ, 16.2000. 739-751.
3.Хансон,  Дэвид  Р.  «Өмір  бойы  жедел  жады  бөлу  және  қозғалысы.»
ОпытиПрактикаПрограммного Қамтамасыз Ету, 20(1). Январь 1990 
года. 5-12.
4.Джонс, Ричард, Хоскинг, Антоний и Мосс, Элиот. Күл-қоқыс коллек-
циялар анықтамалығы   CRC Пресс / Группа Тейлор и Фрэнсис. 2012. 
481.
5.Джонс,РичардиЛинс,РафаэльД. Коллекция Мусора: Автоматты Ди-
намикалық жады басқару алгоритмдері.Нью-Йорк:ДжонУайли.1996.
6.Уилсон,  Пол  Р.,  Джонстон,  Марк  С.,  Нили,  Майкл  и  Боулз,  Дэвид.
«Динамикалық сақтау тарату: Қарау және сыни талдау.» Жұмыс IWM 
Естелік  басқару  жөніндегі  халықаралық  семинар  '95  материалдары
Спрингер Ферлаг. 1 – 116.

271
Қосымша I
Тілдердегі қолдайтын парадигмалар
C

- міндет негіздеріндегі конкуренттік желі; C

- деректер параллелизмі: 
C

– таратылды; C

- синхронды параллелизма; E - Іс-шара негізінде; F – 
функционалдық; I – императивтік; L – логикалық; M – мультимедиалық; 
O

- жалпақ заттармен бағдарланған нысан; V – визуалдық; W – веб.   
Ескертпе:  тілдердің  кейбірлері  ешқандай  айқын  стандартталған 
нұсқалары жоқ. Cоңғы компилятор дамыту негізінде, кейбір күн-
дер шамамен алынған. 
Тіл 
Түзету 
Парадигмалар 
Algol W
1996
I
ALICE
2000
I, E, M, V, білім беру 
мультимедиалық тіл
Ada
2012
I, C

, O
I
C
1999
I, C

(кітапхана), C
P
(ауытқуылар)
C++
2011
I, C

(кітапхана), O

, V 
(ауытқуылар)
C#
2010
I, E, C

, M, O

, V, W (.Net-
пен)
Chapel
Дамуда 
I, C

, O

, (жаппай параллель 
есептеу үшін)
Clair
2009
I, F, L, O
I
, W
Clojure
2011
F, C

, сценарийлер тілі
COBOL
2002
I, O
I   
, бизнес бағдарлама тілі
ECL
1
PS
e
1997
L, тұрақты логикалық 
бағдарлама тілі
Emerald
1994
I, C
D
, O
F
, таратылған есептеу 
тілі
Estrel
1991
I, C
S
, синхронды аппараттық 
модельдеу тілі
F#
2005
I, F, O
I
, E, V, W
FORTRAN
2008
I, O
I
, C
P   
(HPF ретінде 
ауытқуылар)

272
Тіл 
Түзету 
Парадигмалар 
Haskell
2010
F, C
T
Java 
Үздіксіз 
I, E, O
I
, C
T
, M, V, W
Javascript 
1995
I, E, O
F
, W, веб сценарий 
тілі
Lisp family
1994
I (шектеулі), F (негізгі), 
O
I
 (ауытқуылар), C 
(шектеулі)
Lua
2006
I, F, O, C
T
, W (ойын 
сценарий тілі)
ML
1998
I (шектеулі қолдау), F 
(негізгі)
Modula-3
1991
I, O
I
, C
T
Oz/Mozart
2007
I, F, L, O
I
, C
T
Perl 
Әр қалай
I, F (шектеулі), O
I

сценарийлер тілі
PhP
2004
I, OI, W, веб сценарий тілі
Prolog
Әр қалай
I, O
I
 (кітапхана), V 
(ауытқуылар), C

(ауытқуылар)
Python
Үздіксіз 
I, F, O
I
, сценарийді 
жасауға арналған тіл
Ruby
2012
I, F, O

, интеграцияланған 
мультипарадигма
Scala /EScala
2012
I, F, O
I
, C
T

интеграцияланған 
мультипарадигма
SMIL
2008
I, M, W (веб есептеуге)
VRML /X3D
1996/2005
I, M, W, 3D модельдеу тілі
X
10
Дамуда 
I, C
P
, O
I
, жаппай параллель 
есептеулерді үшін
XML/HTML based
Әр қалай
M, V, W, веб негізіндегі 
есептеулер үшін

273
Қосымша II
Абстракцияның деректер жиын-
тығы
1. Отыратын деректер тұлғасы
2. Отырмайтын деректер тұлғасы
3. Тәуелсіз айқын көрсеткіштер / анықтамалар
4. Қосымша дәлдігімен негізгі түрлері
5. Жолдар
6. Массивтер / индекстелген реттіктер
7. Хеш кесте / карталар / негізгі құндылық кесте
8. Луын / жазба / құрылым аттары
9. Реттік түрі
10. Жиынтықтар
11. Рекурсивті деректер түрлері / тізімдер
12. Әмбебап полиморфизм / түр_тарауы
13. Заттар
14. Класс және мұра (бір немесе бірнеше мұралар)
15. Модульдер / пакет/ есім аясы
• Кіріктірілген / кіріктірілген кітапханасында; A -  сілтеме ретінде қол-
данылатын лақап аттар; ∆ - шектеулі; D -  қарқынды терілуі; L – кітап-
хана арқылы; М – медиа заттар; R – қөрсеткіштің орнында анықтама; 
ρ -  диапазон; S -  басқа деректер құрылымымен үлгіленуі; V -  тілдік 
қолдаудың ауытқуы; X – орында жоқтығы 

274
Languages - тілдер

275
Қосымша III
1. Destructive assignment-деструктивті иелендіру
2. Multiple/parallel assignment – көп түрлі/параллельді иелендіру
3. If-then-else – Егер-содан кейін- егер-онда-басқа
4. Case/switch statement – жағдай/қосу иелендірулері
5. For loop/definite iteration –түйінге/нақты итерация
6. While-loop/indefinite loop – аралық түйін/тәуелсіз түйін
7. Do-while (repeat-until) loop – орындау-аралық (қайталау-дейін) түйіні
8. Iterators - итераторлар
9. Functions/subprograms-функциялар/қосымша бағдарламалар
10. Guards-тежеуіштер
11. Exception handling – ерекшеліктерді қабылдау
12. User-defined threads/tasks – пайдалуншы анықтаған қауіптер/тапсы-
рмалар
13. Monitors/mutual  exclusion  using  locks/protected  objects/synchronized
methods – синхрондаған әдістерді /объектілерді қорғалған тежеуіштерді 
ұолдана отырып мониторинг жүргізу/өзара тізімнен шығару
14. Other concurrency constructs – басқа паралелльді құрылымдар
15. Distributed computing – таралған есептеу
—built-in support;-қоса орнатылған қолдау
 C—cluster-based computing;  - кластерлерге негізделген есептеу
D—general loop and exit;  - негізгі түйін және шығыс 
L—interfaced with library;  - кітапхана интерфейсі бар
LT—temporal loop; - уақытша түйін
M—external message passing library like PVM or MPI;  - PVM немесе MPI 
кітапханалары сияқты қосымша хабарлама 
N—not part of current specification;  - ағымдағы техникалық сипаттама-
лардың бөлігі емес
R—simulated  using  tail-recursion;  -  соңындағы  рекурсияны  қолдануды 

276
имитациялау
S—can be simulated using existing constructs;  - әрекеттегі келісім-шарт-
тарды арқылы имитацияланады
T—as a trait; - соңғы
U—until-loop; -түйінге дейін
V—language - тіл
variations support; - қолдау  түрлері
W—web programming support; - веб бағдарламалық қолдау
X—not supported in standards – стандартпен қолдау таппаған
Language-тіл
Control abstractions – бақылау абстракциялары

277
Қосымша IV
Language-тіл
Website-вебсайт

278
Қосымша V
Локалдылық принципі
Бағдарлама  шамалы  уақыт  аралығында  жергілікті  қоршаған  ортаның 
шегінде  орындалады.  Бұл  қазіргі  таңда  жергілікті  қоршаған  ортаның 
белсенді  қатысуы  телім  деп  аталады.    Жергілікті  қағидасы  бағдарла-
маның жақын арадағы болашақта сол телімді қолданатынын бекітеді. 
Орналасу жерінің басқару ағымымен өзгеруі: (1) мәліметтердің үлкен 
құрылымының әр түрлі бөліктерін өңдейді, (2) үлкен бағдарламаның әр 
түрлі бөліктерін алмастырады  немесе (3) басқа бағдарламаны шақыра-
ды.
Жергілікті  қағидасының  тиімді  орындауы  және  бағдарламаны  орын-
дауда кеңістікті тиімді пайдалану үшін маңызды мағынасы бар, себебі 
қазіргі  замаңғы  операциялық  жүйелер  бірнеше  үдерістерді  орындай-
ды  — бағдарламаның белсенді бөлігін бір уақытта — және әр белсен-
ді үдеріс үшін жедел жадының шекті көлемін бөледі. Жедел жадыдағы 
орынның шектілігі үшін бағдарламаның шағын бөлігі белсенді жадыға 
ауыстырылды және белсенді жадыменүздіксіз басқарылуы тиіс. Өзгері-
стерді орындау орыны тәрізді, кеңістіктің жаңа бөліктері айқындалған 
пайдаланушының кеңістігіне келтірілді, оның нәтижесінде ақпараттың 
жоғары  бөлігін,  қатты  диск  тәрізді  екінші  құралдарынан  ақпараттар 
нәтижесінде сақтау. Бағдарламашы қисынды кеңістіктің бағдарламасын 
жазады. Алайда, шын мәнінде, төмеңгі деңгейде,  бағдарламалар және 
мәліметтер,  бағдарламалардың  бөліктері  және  файлдар  қатты  дискіде 
сақталғанда, жедел жадыда сақталады.  Жадының тағы екі кеңістігі бар: 
бағдарламашының  жадыдағы  қисынды  кезектілік  ойлары  виртуалды 
жады және әр түрлі физикалық жады кеңістігі деп аталады, мұнда нақты 
бағдарламалар және міліметтер сақталады. Виртуалды жады  операци-
ялық  жүйенің    физикалық  жадысында  айқындалады.  Жады  блогы  не 
ауыспалы көлемде, немесе бекітілген көлемде, ол операциялық жүйеге 
байланысты.  Ауыспалының көлемінің блоктары сегменттер деп атала-
ды және туындататын қосалқы бағдарламалардың көлемі болады. Блок-

279
тардың бекітілген көлемдері     беттер деп аталады. 
Беттер (немесе сегмент) жедел жадының екінші реет сақталуынан кел-
тірілген, егер де мекен-жайы RAMнан тиімділікті жүзеге асырса жедел 
жады жетіспейді. Жетіспейтін беттердің RAM қатты дискілерінен им-
порт үдерісі  беттер қатесі деп аталады және маңызды мәліметтерді жібе-
руді ұстауы бар. Беттердің істен шығуының саны ұлғайған тәрізді,  және 
пайдаланудың нақты үдерісі азаяды. Жоспарлаушы  пайдалануды жүк-
теуді жақсарту үшін көбірек үдерістерді келтіреді. Бірнеше  үдерістерді 
орындау беттердің көбірек істен шығуын туындатады және пайдалану 
жүктемесін азайтады. Ақырында, процессор пайдалы жұмысты орында-
уды тоқтатады. Бұл құбылыс үндемеу деп аталады, және оны болдырмау 
жөн.

280
Қосымша VI
Виртуалды жад және парақшадағы 
қателер
Бағдарламаны жазушы, бағдарламаны барлық деректер кеңістігі және 
код  кеңістігі  үздіксіз  болғандықтан  логикалық  кеңістікте  есептеу 
арқылы  жазады.  Алайда,  негізінде,  төменгі  деңгейде,  бағдарлама  мен 
жинақталған деректер RAM-да және қатқыл дискте сақталады:  RAM-да 
бағдарламаның белсенді бөлігі сақталса, бағдарламаның қалған бөлік-
тері және деректері қатқыл дискте сақталған. Негізінде  екі жад кеңістігі 
бар: жад кеңістігінің логикалық үздіксіз бағдарлама жазушының көз-қа-
расы  виртуалды  жад  деп  аталады,  негізгі  бағдарлама  және  деректер 
сақталатын,  алмасқан  физикалық  жад  кеңістігін  атайды.  Виртуалды 
жад физикалық жадқа операциялық жүйе арқылы салынған. Жад блогы 
операциялық жүйенің қолднауына байланысты өзгермелі көлемді неме-
се тұрақты көлемді болуы мүмкін. Өзгермелі көлемді блогтардың сег-
менттері деп аталады, және қосымша бағдарлама деп аталатын көлемде 
болады.  Тұрақты көлемді блогтар беттер деп аталады.
Виртуалды жадта RAM-мен рұқсат етілген мекенжай RAM-да болма-
са бет (немесе сегмент) RAM-ға қосалқы қордан алынады.  Жоғалған 
беттерді  қатқыл  дисктен  RAM-ға  алып  келу  үдерісі  беттегі  қате  деп 
аталады,  және  бұл  үдеріс  деректердің  алмасуын  талап  етеді.  Беттегі 
қателердің  көбеюіне  байланысты  негізгі  CPU  өңделуі  азаяды.  Үдеріс 
жоспарлаушысы CPU өңделуін оңтайландыру үшін одан да көп үдері-
стер жасайды. Көп үдерістерді орындау беттерде көп қателердің болуын 
тудырып CPU өңделуін одан бетер азайтады. Соңында, CPU қандай да 
бір пайдалы әрекеттер жасауды тоқтатады. Бұл жадтың толып кету сал-
дарынан жүйенің ақаулығын туғызатын феномен тоқтап қалу деп атала-
ды. Бұндай жағдайды болдырмау керек.

281
Қосымша VII
Бағдарлама жұмысының дұры-
стығы және тығыздығы
Бағдарлама  дұрыс  болап  табылады,  егер  де  шешімдер  жиынтығы 
осымәселені шешу үшін тиімді барлық мүмкін шешімдерді қарастырса. 
Бағдарлама аяқталған болып табылады, егер де, мәселені шешудің жиын-
тығы  шешімдер жиынтығына кірсе. Бағдарламада қате шешім  мәселе-
сі болуы мүмкін, ол бағдарламаның аяқталуы туралы. Ұқсас тәсілмен, 
егер де бағдарлама тек дұрыс шешімдерді қабылдауға тырысса, бағдар-
ламаның толық емес  болуы мүмкін деген болжам бар. біз бағдарлама-
ны жазған кезде, біз шешімнің дұрыстығын және толықтығын іздеуіміз 
керек. Нақты өмірде дұрыс және толық болып табылатын бағдарлама-
лық  қамтамассыз етуді жазу қиын. Бағдарламалық қамтамассыз етудің 
көптеген қисынды қателері бар, олар бағдарламалық қамтамассыз ету 
қателері деп аталады. Ол қателердің саны бағдарламалық қамтамассыз 
ету көлемімен ұлғаяды.
Бағдарламалық  қамтамассыз  етудің  қателерін  жоюдың  бірнеше  тәсілі 
бар: (1) бағдарламашы қисыннан қайта қайта өтеді (2) бағдарламашы 
әр  түрлі  кіріс  мәліметтерінің  үлгілерімен,  бағдарлама  қажетті  шығыс 
мағынасын  қайтармаған  жағдайда,  қателерді  айқындау  және  түзету 
үшін, бағдарламаны іске қосады  және (3) дұрыс бағдарламаларды алу 
үшін автоматтандырылған бағдарламаларды талдау үшін құралдар қол-
данылады. 1 және 2 әдістер  кең таралған болып табылады. Алайда,  3  
әдіс бағдарламалық қамтамассыз ету үшін сирек  болып табылады, се-
бебі тартылған есептеу техникасын талап етеді.

282
Қосымша VIII
Алгоритмдер қиындығы
Төмеңгі деңгейдегі аралық кодтың жоғары деңгейлі құрылымын аудару 
уақытысында және бағдарламаларды орындау уақытысында бағдарла-
малардың тиімділік мәселесі шешілуі тиіс. Бағдарламалардың тиімділігі 
келесідей көптеген факторларға байланысты: (1) құрылымдық мәлімет-
тердің орналасуы;
(2) Қатты дискіде сақталатын мәліметтерді шығару жиілігі; (3) тиімді 
алгоритмдердің болмауы; және (4) үстеме шығындардың мәліметтері, 
әсіресе,  қиын  тапсырманы  шешу  үшін  бірнеше  үдерістерді  қолдану 
кезінде.
Орындаудың тиімділігін оқудың тәсілдерінің бірі болып, шығыс көлем-
дерінің  ұлғаюы кезіндегі жағдайды орындау тиімділігін оқыту тәсілі 
табылады.  Мысалы сызықтық қиындықты алгоритмде орындау уақы-
тысы  шығыс мәліметтерінің көлемінің ұлғаюымен өседі.  Алгоритмнің  
төртбұрышты сыйымдылығы бар, егер де бағдарламаны орындау уақы-
ты   O(m2) баламасын ұлғайтса. Егер шығыс мәліметтерінің көлемі m 
баламасына ұлғайса. Кубтық алгоритмдерде, кіріс мәліметтерінің көлемі 
m рет ұлғайғанда,  орындау уақытысы  O(m3) ұлғаяды. Кубтық алгорит-
мдерден  бөлек,  алгоримдер  үлкен  көлемдегі  мәліметтерде  қолдануға 
арналмаған және өз тапсырмаларын орындауда өте баяу болады. Қуат 
баламасы үстіңгі шек тәрізді тұрақты шамамен шектелген мұндай алго-
ритмдер Полиномиалды алгоритмдер деп аталады, және тәжірибеде қу-
аттылық баламасының мағынасы > 4 жақсы шешім болып табылмайды.  
Тиімді алгоритмдер класстары  тұрақты қиындылық, лог(лог(N)) қиын-
дылық, қиындылық лог(N) және сызықтық қиындылық(O(N)), уақытты 
ұлғайту екпіні аз немесе кіріс мәліметтерінің көлеміне тең. лог(N)қиын-
дылықтың кейбір мысалдары іздеудің екілік алгоритмдері және тұрақты 
уақытта әдістерді хэштеу алгоритмдері болып табылады.
Алгоритмдердің  қызықты классы   экспоненциалды  алгоритмдерді қа-
растырады,  онда  уақыт  кіріс  мәліметтерінің  көлемінің  ұлғаюымен 

283
экспоненциалды  ұлғаяды.  Кіріс  мәліметтерінің  көлемінің  ұлғаюы 
кезінде,  экспоненциалды  алгоритмдер,  кез  келген  компьютерде  орын-
дау  үшін  орындау  уақыты  тым  үлкен  деңгейге  қол  жеткізеді.  Егер  де 
полиномиалды қиындықта және осындай НР мәселелері осы мәселеге 
қайта құрылуы мүмкін екендігін біз білмесек, онда мәселе  НР-толық 
(анықталмаған полиномиалды толық) деп аталады. Бағдарламалау тіл-
дерін үлестіруде біз, осы уақытқа дейін тиімсіз болып табылатындығы 
мәлім болған,  НР-толық мәселелерінің алдын алғанды  қалаймыз. 
Қазіргі таңда  НР-толық  алгоритмдері  аппроксимацияны, эвристиканы  
(математикалық  функцияның  негізінде  немесе  танымал  шешімдердің 
негізінде зияткерлік табу) және кіріс мәліметтерін және алгоритмдерді 
орындау тиімділігін арттыру үшін параметрлерін шектейді.
Уақыт  тиімділігінің  мәселесі  айтарлықтай    күрделі  болып  табылады 
және алгоримдік қиындықтардың модулденген зерттеулері ғана бола ал-
майды.  Қарауға арналған басқа да сұрақтар бар: (1) Қатты дискілерден 
мәліметтерді шығарудың жасанды шығындары ОЗУ, (2) елді мекен қағи-
дасын қолдану, (3) жинау мәліметтерін жинау каналы  және (4) мәлімет-
терді жіберудің жасанды шығындары. Бұл мәселелер операциялық жүй-
елерде қарастырады.

Мазмұны 
1 Кіріспе……………………………………………………………………………………..……………………………………..…5 
1.1 Пәндер салаларының жиынтығы…………………………………………………………………………………..….6 
1.2 Мотивация…………………………………………………………………………………………………………………….……8 
1.3 Оқыту нәтижелері………………………………………………………………………………………………………….….10 
1.4 Компоненттер мен бағдарламалар……………………………………………………………………………….…11 
1.4.1 Бағдарламалардағы абстракциялар………………………………………………………………………….….13 
1.4.2 Қолсараптамасы (бағдарламаны түсіну) және Ауысулар………………………………………….…18 
1.4.3 Бағдарламалардың орындалуы…………………………………………………………………………….………21 
1.5 Бағдарламалау тілдерінің сәйкестілігі……………………………………………………………………….…….28 
1.6 Бағдарламалық қамтамасыз етуді жетілдіру циклі……………………………………………….………..28 
1.7 Дұрыс бағдарламалау тілінің критерийлері…………………………………………………………….………32 
1.8 Парадигмалар мен бағдарламалау тілдерінің тарихы…………………………………………….……..34 
1.8.1 Императивті бағдарламалау .парадигмасы……………………………………………………….…………34 
1.8.2 Декларативті бағдарламалау парадигмасы……………………………………………………….…………36 
1.8.3 Объектіге бағытталған  бағдарламалау парадигмасы………………………………………….………38 
1.8.4 Параллель бағдарламалау парадигмасы……………………………………………………………….…….40 
1.8.5 Визуалды бағдарламалау парадигмасы…………………………………………………………………….…41 
1.8.6 Мультимедиялық бағдарламалау парадигмасы………………………………………………….………42 
1.8.7 Веб-бағдарламалау парадигмасы………………………………………………………………………….……..42 
1.8.8 Оқиға-бағдарланған бағдарламалау парадигмасы…………………………………………….………..43 
1.8.9 Бағдарламалау парадигмаларын интерграциялау………………………………………………….……44 
1.9 Тілдердің жіктелуі……………………………………………………………………………………………………….…….44 
1.9.1 Бағдарламалау парадигмаларды негізіндегі жіктеу…………………………………………….………45 
1.9.2 Қолдану негізінде жіктеу………………………………………………………………………………………….……45 
1.9.3 Басқа жіктеу……………………………………………………………………………………………………………….…..47 
1.10  Қысқаша қорытындылар………………………………………………………………………………………….……48 
1.11 Бағалау……………………………………………………………………………………………………………………….……49 
1.11.1 Тұжырымдамасы мен анықтамалар…………………………………………………………………………..49 

Достарыңызбен бөлісу:
1   ...   18   19   20   21   22   23   24   25   26




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

    Басты бет