Алгоритмдер және оның қасиеттері

Автор: Пользователь скрыл имя, 26 Февраля 2013 в 18:26, лекция

Описание работы

Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында зерттеле бастады.

Работа содержит 1 файл

Алгоритм және оның қасиеттері2.doc

— 702.50 Кб (Скачать)

 


                               - - - -    Машина тіліндегі                               


                                                программа және

                                                құрастырушы

                                                үшін информация

 

    Ассемблер бастапқы модульді объектік программаның бір түрі болып табылатын объектік модульге түрлендіреді.

    Объектік модульдің оны  оған тәуелсіз трансляцияланған  басқа модульдермен біріктіруге  және оның жедел жадтағы   орналасуын реттеуге арналған  машиналық командалары және  информациялары  бар. Объектік модуль компьютерлерде  тікелей орындалмайды, сондықтан да оны программа  құрастырушының қосымша өңденуіне тура келеді. 

 

 

 

 

 

 

 

 

 

Интерпретатор және компилятор

 

    Жоғары деңгейлі тілдің  трансляторы трансляциялау  кезеңдерінің  өту реттілігіне және программа  операторының  орындалуына байланысты интерпретатор немесе  компилятор деп аталады. Интерпретатор әрбір жеке  операторды трансляциялаған соң, оның тікелей тез орындалуын қамтамасыз етеді, яғни трансляция кезеңі мен орындалу кезеңі кезекпен қайталанады. Программаны интерпретациялау схемасы мына суретте көрсетілген.

 

Интерпретатор



 



 


 


   


     





Жоғарғы деңгейлі


тілдегі программа


 


 



 

 

     

    Компилятор  программаның барлық операторларын  трансляциялайды, ал программаның орындалуы жалпы алғанда оның қатынасуынсыз өтеді, яғни жеке операторларды трансляциялау кезеңдері тікелей бірінен соң бірі өтеді және  программаның орындалуынан толық оқшауланған болады. Программаны компиляциялаудың қысқартылған схемасы мына суретте көрсетілген.    

                                             

Компилятор



 



 

 

 





                                                                                   


                                                                               Объектік модуль

                                                                               немесе төменгі


                                                                               деңгейлі тілдегі

                                                                                программа


 



 

 

    

    Жоғарғы деңгейлі тілдердің  көпшілігі үшін комбиляторлар   жасалған. Интерпретаторлар жасалған  тілдердің мысалына  BASIC және FOCAL тілдерін атауға болады. Компьютерлердің   программалау жүйесінде комбилятордың екі түрі бар. Бірінші  түрдегі комбиляторлар бастапқы модульді машина тіліндегі  объектік программаға түрлендіреді, яғни объектік модульді  ассемблар тіліндегі объектік программаға түрлендіреді. Екінші  түрдегі комбилятор қалыптастырған осы программадан  объектік модульді алу үшін қосымша ассемблерді пайдалану  қажет болады.

           

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Бағыныңқы программалар кітапханасы

   

    Бірнеше программада  немесе бір программаның бірнеше   жерінде белгілі бір әрекетке  қол жеткізу үшін пайдаланылатын  машина тіліндегі командалар тізбегін бағыныңқы программа деп атайды. Әртүрлі программаларда жиі қолданылатын  бағыныңқы программаны бірыңғай ереже бойынша безендіріп, оны стандартты бағыныңқы программа деп атайды. Программаларды осылай стандарттау оларға бір пішінде ат  беріп, онымен қарым-қатынас орнатуды, аргументтер мен нәтижелер туралы информацияны беру тәсілін формальды тіркеуді, сонымен бірге бағыныңқы программаны негізгі программаға қосу мүмкіндігін автоматтандыруды қамтамасыз  ететін бағыныңқы программалардың өздерін жасаудың  бірыңғай ережелерін құруды көздейді.

    Компьютердің жадында  тұрақты сақталатын стандартты  бағыныңқы программалар жиыны  стандартты бағыныңқы  программалар  кітапханасын құрады. Мұндай кітапхана   құрамында бірнеше ондаған программалардан бірнеше  жүздеген программаларға дейін болады. Әртүрлі есептерді  шығаруда оларды қолдану мақсатында жиі кездесетін  бағыныңқы программаларды жинау идеясы копьютерлердің  өмірге келумен бірге пайда болды.

    Жеткілікті толық бағыныңқы программалар кітапханасы бар  жағдайда көптеген күрделі есептерді программалау есептелу  процесін бірнеше кезеңдерге жіктеп, оларға бағыныңқы  программалар кітапханасындағы дайын программаларды  қолдануға және ол кезеңдерді үйлестіруге алып келеді.

    Сенімді жұмыс імтейтін сыртқы есте сақтау  құрылғыларын жасау стандартты бағыныңқы программалар  кітапханасын компьютердің жадында сақтауға мүмкіндік береді. Стандартты бағыныңқы программалар кітарханасы шын мәнінде компьютердің орындайтын операциялары  жиынының программалық кеңейтілуі болып табылады. Осы  операциялардың көпшілігін компьютердің аппараттық бөлігінің  көмегімен жүзеге асыруға болар еді, бірақ бұл компьютердің  құрылысын күрделендіріп жібереді.

    Құрылып жатқан программаға компилятор математикалық  функциялардың мәндерін есептейтін, ендіру-шығару  операцияларын орындайтын объектік модульді қолдануды  қосады. Бұл модульдер стандартты бағыныңқы программалар  кітапханасында сақталады және одан құрастырушы  программа автоматты түрде алады.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Құрастырушы

 

    Құрастырушы бірнеше объектік модульді операциялық  жүйе жүктегенннен кейін компьютерде тікелей орындалу үшін  мына төменднгі схемада көрсетілгендей даяр жүктелетін бір  модуль етіп құрастырады.

 

                                         


                                         


 

 



 



                                                                     


                                                               Объектік


                                                                     модульдерді


                                                                      құрастыру


                                                                     



                                                                     Компьютерде


                                                                     орындауға


                                                                     дайын, машина

                                                                     тілдегі программа 


        Мұндай құрастырудың  қажеттілігін әрбір объектік  модульде берілген модульге тәуелсіз  трансляцияланған  немесе стандартты  бағыныңқы программалар кітапханасында  сақталатын басқа объектік модульге өтудің барлығымен  қамтамасыз етіледі.

    Құрастырушы әрбір машина командасының және деректердің әр бір элементтің операциялық жүйедегі өз орнын анықтайды және модульдердің бірімен-бірінің қатынас жасауын қамтамасыз етеді.                                                               

                                        Жөндеуші

 

    Пайдаланушы құрған программадағы  қателіктерді іздеуді  және  жөндеуді тездетіп қысқарту үшін  программалау жүйесінің  құрамына жөндеуші деп аталатын программа ендірілген.

    Әрбір жөндеуші программа нақтылы программалау тілінде жазылған программамен бірігіп жұмыс істеуге бағдарланған. Ол программадағы айнымалы мәндерінің өзгерістерін қарап шығуға, программаның орындалуын оперативті басқаруға, программаның орындалыушы операторын баспаға шығаруға, сонымен бірге басқа да қателіктерді іздеуді диалог режімінде  жүзеге асыруға арналған программалық құралдарды береді.

    Компьютердің оперативті  жадына машина тіліндегі  программа  жүктеліп, компьютер оны орындауды бастағаннан  кейін ғана компьютерде тікелей есеп шығару басталады. Машина тіліндегі программаның жұмысқа жарамды артық  нұсқасы онда жіберілген қателіктерді тауып жөндейтін  жөндеушіден өткеннен кейін ғана алынады.

    Пайдаланушы модуліндегі қателіктерді екі түрге бөлуге  болады:

  • синтаксистік (пайдаланып отырған программалау тілінің  синтаксисі бойынша жіберуге болмайтын модуль  мәніндегі құрылымдар);
  • мазмұндық (арифметикалық өрнектердегі дұрыс  қойылмаған жақшалар, есептелу процесіндегі тармақталу  шарттарының дұрыс тұжырымдалмауы, циклдің  қайталану санының дұрыс берілмеуі  т.с.с.).

    Мазмұнындағы қателіктер  шын мәнінде автор ойлаған   алгоритмді емес, программада басқа  бір алгоритмнің орындалуына  алып келеді.

    Синтаксистік қателерді мәтінді синтаксистік талдау  кезеңінде транслятор анықтайды және мәтіннен табылған  қателіктің орнымен сипатын көрсететін диагностикалық хабар  береді.

    Мазмұнындағы қателіктерді  анықтау үшін жоғарыда  айтылғандай  тест қолданылады.

    Программаны жөндеу процесі кезінде программалаушыға  аралық нәтижелерді беру қажет немесе кейбір  командалардың орындалуының дұрыстығын тексеру керек. Бұл үшін программалау жүйесіндегі қызмет етуші жөндеушіні  жұмысқа қосу керек. Программалаушы жөндеушіге тапсырма  даярлау үшін арнайы тіл жасалады. Жөндеуші бұл тапсырмаларды компьютердің көмегімен орындайды. Ол  жөнделіп жатқан программаның машиналық командалардың орындалуын қамтамасыз  етуі және бақылау нүктелерінен  өтуін қадағалауы тиіс.

    Бақылау нүктесі–бұл мына төмендегідей қосымша  әрекеттер жасау керектігін білдіретін прогрммадағы нүкте:

    • аралық нәтижелерді баспаға шығару;
    • прогрмманың кезектегі бөлігіне қажетті бастапқы  деректерді беру;
    • прогрммада қарастырған командалардың орындалу  реттілігін өзгерту т.с.с.

    Егер кезектегі орындаған  (немесе орындалуға тиісті)  команда  бақылау нүктелерінің бірі болса,  онда жөндеуші  жөнделіп жатқан  прогрмманың орындалуын үзеді  және осы  бақылау нүктесі  үшін берілген жөндеу әрекеттерін  жүзеге  асырады.

    Жөндеуші екі бөлімнен тұрады;

  • қайталаушы;
  • өңдеуші.

    Қайталаушы программа жөнделіп жатқан программаның  командаларын кезекпеннен алып орындайды, бірақ олардың әрқайсысы орындалып болғаннан кейін, жөндеушінің екінші  бөлігі өңдеуші программаға өтуді жүзеге асырады. Бұл  программа таңдалынып алынған командада жөндеу үшін  көрсетілген тапсырма бақылау нүктесінің бірі не немесе жоқ  па? соны тағайындайды. Егер бақылау нүктесі болса, онда  өңдеуші программа осы нүкте үшін берілген өңдеу  әрекеттерінің орындалуын қамтамасыз етеді және бұдан соң  қайталаушы программаға қайта оралу жүзеге асырылады. Жөндеуші жөнделетін тапсырма синтаксисінің дұрыстығын  алдын ала тексереді. Синтаксистік қатесі бар тапсырмаларды жөндеуші орындамайды, оған сәйкес хабарларды баспаға шығарумен шектеледі.

    Компьютерде программаны  орындауға даярлаудың  танымал  схемасы  (келесі 80-ші бетте) мына  төменгідей  болады. Программаны  даярлау мәтін редакторын пайдаланып  орындалатын бастапқы модуль  файлын құрып  қалыптастырудан  басталады. Бұдан соң бастапқы модульді  компилятордың немесе ассемблердің көмегімен  тарнсляциялау орындалады. Трансляциялаудың нәтижесінде басқа объектік модульдермен бірге құрастырушы бір  жүктелетін модульге біріктіретін объектік модуль файлы пайда  болады. Пайдаланушының командасы бойынша монитор  жүктелетін модульді операциялау жүйеге орналастырады  және оның орындалуын қамтамасыз етеді.

 

 


                                                                                 Мәтін редакторын

                                                                                 пайдаланып


                                                                                 орындалады

Информация о работе Алгоритмдер және оның қасиеттері