Ассемблер тілін бағдарламалау әдістері және қолданылатын орны
Мазмұны
Кіріспе
1. Негізгі бөлім:
1.1 Ассемблер және макроассемблер тілдері
1.2 Трансляторлар
1.3 Интерпретатор және компилятор
1.4 Бағыныңқы программалар кітапханасы
1.5 Құрастырушы, жөндеуші
1.6 Модульді программалау
1.7 Пайдаланушы модулі, жүктелуші модуль, абсолютті модуль
1.8 Программалау тілдерінің қолданылуы
Бағдарламалау тілдері – бұл
адам мен компьютер қатынасы үшін арнайы
жасалған формальді тілдер.
Бағдарлама \Программа\ – бұл компьютерді
басқаруға қажет логикалы реттелген командалар
тізбегі.
Барлық нақты бар бағдарламалу тілдері
жоғарғы және төменгі деңгейдегі тілдерге
бөлінеді. Әр бағдарламалу тілінің алфавиті,
сөздік қоры, грамматикасы және синтаксисі,
семантикасы болады.
Команда \оператор\ – компьютер орындауға
міндетті әрекеттің өрнектелуі.
Процедуралы тілдердің аса маңызды жіктелетін
белгілерінің бірі олардың деңгейі болып
табылады. Бағдарламалау тілінің деңгейі
оның құрылысының семантикалық (ойлық)
сыйымдылығымен және бағдарламалаушы
адамның бағытымен анықталады.
Жоғарғы деңгейдегі бағдарламалау тілдері
процедуралық (ФОРТРАН, АЛГОЛ, КОБОЛ) және
процедуралық емес болып бөлінеді. Функциялық
(ЛИСП) және логикалық (ПРОЛОГ) бағдарламалау
тілдері. Объектіге-бағытталған бағдарламалау
тілдері. Деректер қорының бағдарламалау
тілдері. Интернетке арналған бағдарламалау
тілдері. Модельдеу тілдері. Екілік тіл.
Он алтылық тіл. Ассемблер,
Макроассемблер
тілі.
Таңдалған бағдарламалау тілінде бағдарламаны
құру үшін жалпы жағдайда келесі компоненттерге
ие болу керек: мәтіндік редактор, компилятор,
байланыс редакторы, функция библиотекасы.
Қазіргі интегралданған жүйелерде тағы
бір компонент – отладчик болады, ол бағдарлама
жұмысының орындалу барысында талдау
жасауға мүмкіндік береді.
Бағдарламаны дайындауды тізбектелген
кезеңдер қатарын бөлуге болады: есептің
қойылымы, бағдарламаны жобалау, модельді
құру, алгоритмді талдау, алгоритмді орындау,
алгоритмнің және оның күрделілігін талдау,
бағдарламаны тестілеу, құжаттау.
Бағдарламаны жобалауға арналған әр түрлі
амалдар мен тәсілдер бар. Қазіргі кездегі
амал абстракцияны қолданып декомпозициялауға
негізделген. Архитектурасын жобалау
әдістері екі топқа бөлінеді: өңдеуге
бағытталған және деректерге бағытталған.
Өңдеуге бағытталған әдістер келесі идеялардан
тұрады: модульдік бағдарламалаудан, функционалдық
декомпозициядан, деректер ағымын қолдана
отырып жобалаудан, жобаны құрылымдық
талдау технологиясынан. Деректер құрылысын
қолдануға бағытталған жобалау әдісін,
Джексон әдістемесіне, Уорнер әдістемесіне,
иерархиялық диаграмма әдістемесіне,
жобалаудың объектіге-бағытталған әдістемесіне
бөледі. Модельдерді құру барысында екі
принціпті қолданады: дедуктивті (жалпыдан
жекеге) және индуктивті (жекеден жалпыға).
Есептегіш емес алгоритмге сұрыптау және
іздеу жатады. Сызықтық іздеу процедурасы
сілемнің барлық элементтерін қарапайым
тізбектеп қарап шығудан және оларды эталонмен
салыстырудан тұрады. Тең бөліп іздеу
реттелген деректерге қолданылады. Келесі
сұрыптаулар аса кеңінен қолданылады:
қосу, таңдау және алмастыру көмегімен.
Екілік қосу әдісі. Қосумен жақсартылған
сұрыптау. Ағаш көмегімен сұрыптаудың
жақсартылған әдісі. «Шейкерлі» сұрыптау.
Қабыршақ әдісі. Файлдарды сұрыптау.
1. Алгоритмдік тіл.
- деп алгоритмді бірыңғай
Алгоритмдегі идентификатор – айнымалының атауы. Идентификатор лат. әріптерімен, сандармен белгіленеді.
Программалық тіл – алгоритмді компьютерге түсінікті мәтін түрінде жазуға араналған жасанды тіл.
Мыс: Паскаль, Бейсик, СИ, Дельфи, Пролог…
Кодтар тілі – компьютердің машиналық тілі /мыс:
1000100010010 1011111100001 111100111/
Транслятор – программаны /алгоримтді/ машина тіліне
түрлендіретін программа.
Мыс: программада – end
Транслятордан соң – 11100010 10001110 11000010
Транслятордың 3 түрі бар.
1. Интерпретатор –
проргамманың әр жолын жеке аударып орындайды.
2. Компилятор – барлық проргамманы бірден аударып
компьютер зердесіне модуль түрінде сақтайды.
Ол модуль біздің қалауымыз бойынша (Ғ5
клавиші) орындалады.
3. Ассемблер – тек код түрінде яғни, ассемблер түрінде
жазылған прог. ғана машина тіліне аударады.
Ассамблер таңбалар (символдар)тілі бола отырып,белгілі бір дәрежеде машина тілінде программа жасаудағы кемшіліктерді жоюға мүмкіндік береді. Ассамблер тілінде программаның барлық элементтері таңбалармен берілетіндігі оның басты артықшылығы болып табылады.Басқаша айтқанда ассамблер тілінің машина командаларының цифрлық кодтарын әріптермен немесе әріп-цифрлармен таңбалауға және деректердің таңбалық аттарын пайдалануға мүмкіндік беретіндігі оның машина тілінен айырмашылығы болып табылады. Ассамблер тілінің командаларын машина тіліне аударғанда машина командасын білдіретін әрбір оператор осы команданың цифрлық кодтарымен алмастырылады. Командалардың таңбалық аттарын олардың екілік кодтарына түрлендіру жұмысы программа жасаушы адамды өте қиын әрі күрделі машақаты көп жұмыстан босататын және бұл жағдайда құтиылоуға болмайтын қателіктерден құтқаратын арнайы программа-ассамблерге жүктеледі. Ассамблер тілінде программалауда пайдаланылатын таңбалық аттар программаның семантикасын, ал команданың қысқартылып берілген атаулары оның негізгі функциясын білдіреді.Мысалы, ADD-қосу, SUB-азайту, PARAM-параметр т.с.с.Мұндай аттарды программа жасаушылар оңай есінде сақтайтын болады. Ассамблер тілінде программа жасау үшін машина тілінде программа жасағандағыдан көп күрделі құралдар қажет болады: ‘
- • сыртқы құрылғылармен жабдықталған дербес компьютер;
- • процессордың түріне қарай резиденттік немесе жүйелік программалар.
Машина тіліне қарағанда ассамблер тілі едәуір күрделі, программаларды ұтымды жазуға және жөндеуге мүмкіндік береді. Ассамблер тілі машинаға бағдарланған тіл, яғни процессордың әрбір командасына таңбалық ат меншіктейтіндіктен машина тіліне және процессордың құрылысына тәуелді тіл болып табылады. Программа жасауда ассамблер тілі машина тіліне қарағанда программа жасаушылардың еңбек өнімділігін арттыруға сонымен бірге процессордың программалық және аппараттық ресурстарын толық пайдалануға мүмкіндік береді. Бұл біліктілігі жоғары программалаушыларға жоғары деңгейлі тілдермен жасалған программамен салыс–тырғанда компьютердің жадында аз орын алатын жылдам жұмыс істейтін программалар жасауға мүмкіндік береді. Ассамблер тілінің осындай артықшылықтарына байланысты ендіру-шығару құрылғыларын басқарушы программалар неше түрлі жоғары деңгейлі тілдердің көптігіне қарамай ассамблер тілінде жазылады. Ассамблер тілінің көмегімен программа жасаушы адам мынадай параметрлерді бере алады:
- • процессордың машина тілінің әрбір командасының таңбалық атын;
- • ассамблер тілінде жазылған программалық қатардың стандартты пішімін;
- • командалардың нұсқаларын және адрестеудің тәсілдерін қалай көрсету керектігі туралы пішімді;
- • таңбалық тұрақтыларды және бүтін сандық тұрақтыларды әртүрлі санақ жүйелерінде көрсету үлгілерін;
- • программалауды ассамблерлеу (транслациялау) процесін басқарушы пседокомандаларды.
Ассамблер тілі кез келген компьютерге түсінікті,өйткені басқа барлық тілдерге қарағанда машина тіліне ең жақын тіл ол ассамблер тілі. Бұл тіл копьютнрмен жақынырақ танысуға мүмкіндік береді. Сондықтан да ассамблерді оқу дегеніміз процессордың өзін оқып үйрену деген сөз. Ассемблер тілінде жазылған программа кез келген басқа тілдерде жазылған программаларға қарағанда өте тез орындалады. Мысалы, ассемблер тілінде жазылған программа дәл осы программаға баламалы СИ немесе Паскаль тілдерінде жазылған программалардан екі-үш есе, ал BASIC тілінде жазылған программалардан он бес және онда да көп есе тез орындалады. Ассемблер тіліндегі программалар басқа тілдерде жазылған программаларға қарағанда өлшемі жағынан шағын болады, сондықтан компьютердің жадын үнемдеуге мүмкіндік береді. Ассемблер тіліндегі программалар компьютердің барлық мүмкіндіктерін толық ұтымды пайдалануға сізге жол ашады. Ассемблер тілін әрқайсысы машина командаларының бір тобына баламалы макрокомандалармен толықтыру жүйе қолданылады. Мұндай тіл макроассемблер тілі деп аталады. Макрокомандаларды пайдалану ірі құрылыс блоктарының программалар құруға мүмкіндік береді және ассемблер тілін жоғары деңгейлі тілдерге жақындатады.
Трансляторлар
Жоғары деңгейлі тілдер көптеген
алгоритмдерді үйреншікті математикалық
амалдардың жазылуына жақын ыңғайлы
түрде жазып түсіндіруге
- • процедуралы (көптеген классикалық программалау тілдері, мысалы, FORTAN, PASCAL, BASIC, C);
- • логикалық (ЛИСПЫ, ПРОЛОГ т.б.);
- • объектік-бағдарланған (С++, Java т.б.).
Қысқа программаларды жасауда
процедуралық программалау тілдерін пайдалану
ыңғайлы; логикалық программалау тілдерін
алгоритмдерді теориялық
- • лексикалық талдау. Мұның негізгі атқаратын қызыметі программаның бастапқы мәтінін одан әрі қарай өңдеу үшін ең ықшамды және ыңғайлы етіп ұсыну. Осылауша алынған мәтін транслятордың синтаксистік талдаушы деп аталатын келесі бөліміне бастапқы деректер ретінде беріледі;
- • синтаксистік талдау. Бұл кезңде бастапқы мәтінді синтаксистік талқылау жүргізіледі, яғни сөйлемдердің типтерін тану және программаның құрылымын айқындау, сонымен бірге синтаксистік қателіктерді айқындаушы синтаксистік бақылау;
- • объктік программаны жасау. Бұл кезеңде шын тілдің баламалы сөйлемдерінің мәні зерттеліп, симантикалық талдау жасалады;
- • объктік программаны безендіру және беру. Бұл транслятор жұмысының соңғы қорытынды кезеңі. Объктік программаны кітапханаға жазуға, баспаға шығаруға болады. Пайдаланушының нұсқауы бойынша транслятор ендіретін қосымша информацияның белгілі бір бөлігі ғана баспаға беріледі.
Шығарылатын есептің сипатына
және пайдаланушылардың
Интерпретатор және компилятор
Жоғары деңгейлі тілдің трансляторы трансляциялау кезеңдерінің өту реттілігіне және программа операторының орындалуына байланысты интерпретатор немесе компилятор деп аталады.Интерпретатор әрбір жеке операторды трансляциялаған соң, оның тікелей тез орындалуын қамтамасыз етеді, яғни трансляция кезеңі мен орындалу кезеңі кезекпен қайталанады. Программаны интерпретациялау схемасы мына суретте көрсетілген. Компилятор программаның барлық операторларын трансляциялайды, ал программаның орындалуы жалпы алғанда оның қатынасуынсыз өтеді, яғни жеке операторларды трансляциялау кезеңдері тікелей бірінен соң бірі өтеді және программаның орындалуынан толық оқшауланған болады. Программаны компиляциялаудың қысқартылған схемасы мына суретте көрсетілген. Жоғарғы деңгейлі тілдердің көпшілігі үшін комбиляторлар жасалған. Интерпретаторлар жасалған тілдердің мысалына BASIC және FOCAL тілдерін атауға болады. Компьютерлердің программалау жүйесінде комбилятордың екі түрі бар. Бірінші түрдегі комбиляторлар бастапқы модульді машина тіліндегі объектік программаға түрлендіреді, яғни объектік модульді ассемблар тіліндегі объектік программаға түрлендіреді. Екінші түрдегі комбилятор қалыптастырған осы программадан объектік модульді алу үшін қосымша ассемблерді пайдалану қажет болады.
Бағыныңқы программалар кітапханасы
Бірнеше программада немесе
бір программаның бірнеше жерінде
белгілі бір әрекетке қол жеткізу
үшін пайдаланылатын машина тіліндегі
командалар тізбегін бағыныңқы программа
деп атайды. Әртүрлі программаларда
жиі қолданылатын бағыныңқы программаны
бірыңғай ереже бойынша безендіріп,
оны стандартты бағыныңқы программа
деп атайды. Программаларды осылай
стандарттау оларға бір пішінде
ат беріп, онымен қарым-қатынас орнатуды,
аргументтер мен нәтижелер
Құрастырушы
Құрастырушы бірнеше объектік
модульді операциялық жүйе жүктегенннен
кейін компьютерде тікелей
Жөндеуші
Пайдаланушы құрған программадағы
қателіктерді іздеуді және жөндеуді
тездетіп қысқарту үшін программалау
жүйесінің құрамына жөндеуші деп
аталатын программа ендірілген. Әрбір
жөндеуші программа нақтылы программалау
тілінде жазылған программамен бірігіп
жұмыс істеуге бағдарланған. Ол программадағы
айнымалы мәндерінің өзгерістерін қарап
шығуға, программаның орындалуын оперативті
басқаруға, программаның орындалыушы
операторын баспаға шығаруға, сонымен
бірге басқа да қателіктерді іздеуді
диалог режімінде жүзеге асыруға
арналған программалық құралдарды береді.
Компьютердің оперативті жадына машина
тіліндегі программа жүктеліп, компьютер
оны орындауды бастағаннан
- • синтаксистік (пайдаланып отырған программалау тілінің синтаксисі бойынша жіберуге болмайтын модуль мәніндегі құрылымдар);
- • мазмұндық (арифметикалық өрнектердегі дұрыс қойылмаған жақшалар, есептелу процесіндегі тармақталу шарттарының дұрыс тұжырымдалмауы, циклдің қайталану санының дұрыс берілмеуі т.с.с.).
Мазмұнындағы қателіктер шын мәнінде автор ойлаған алгоритмді емес, программада басқа бір алгоритмнің орындалуына алып келеді. Синтаксистік қателерді мәтінді синтаксистік талдау кезеңінде транслятор анықтайды және мәтіннен табылған қателіктің орнымен сипатын көрсететін диагностикалық хабар береді. Мазмұнындағы қателіктерді анықтау үшін жоғарыда айтылғандай тест қолданылады. Программаны жөндеу процесі кезінде программалаушыға аралық нәтижелерді беру қажет немесе кейбір командалардың орындалуының дұрыстығын тексеру керек. Бұл үшін программалау жүйесіндегі қызмет етуші жөндеушіні жұмысқа қосу керек. Программалаушы жөндеушіге тапсырма даярлау үшін арнайы тіл жасалады. Жөндеуші бұл тапсырмаларды компьютердің көмегімен орындайды. Ол жөнделіп жатқан программаның машиналық командалардың орындалуын қамтамасыз етуі және бақылау нүктелерінен өтуін қадағалауы тиіс. Бақылау нүктесі–бұл мына төмендегідей қосымша әрекеттер жасау керектігін білдіретін прогрммадағы нүкте:
- • аралық нәтижелерді баспаға шығару;
- • прогрмманың кезектегі бөлігіне қажетті бастапқы деректерді беру;
- • прогрммада қарастырған командалардың орындалу реттілігін өзгерту т.с.с.
Егер кезектегі орындаған (немесе орындалуға тиісті) команда бақылау нүктелерінің бірі болса, онда жөндеуші жөнделіп жатқан прогрмманың орындалуын үзеді және осы бақылау нүктесі үшін берілген жөндеу әрекеттерін жүзеге асырады. Жөндеуші екі бөлімнен тұрады;
- • қайталаушы;
- • өңдеуші.
Қайталаушы программа жөнделіп жатқан программаның командаларын кезекпеннен алып орындайды, бірақ олардың әрқайсысы орындалып болғаннан кейін, жөндеушінің екінші бөлігі өңдеуші программаға өтуді жүзеге асырады. Бұл программа таңдалынып алынған командада жөндеу үшін көрсетілген тапсырма бақылау нүктесінің бірі не немесе жоқ па? соны тағайындайды. Егер бақылау нүктесі болса, онда өңдеуші программа осы нүкте үшін берілген өңдеу әрекеттерінің орындалуын қамтамасыз етеді және бұдан соң қайталаушы программаға қайта оралу жүзеге асырылады. Жөндеуші жөнделетін тапсырма синтаксисінің дұрыстығын алдын ала тексереді. Синтаксистік қатесі бар тапсырмаларды жөндеуші орындамайды, оған сәйкес хабарларды баспаға шығарумен шектеледі. Компьютерде программаны орындауға даярлаудың танымал схемасы (келесі 80-ші бетте) мына төменгідей болады. Программаны даярлау мәтін редакторын пайдаланып орындалатын бастапқы модуль файлын құрып қалыптастырудан басталады. Бұдан соң бастапқы модульді компилятордың немесе ассемблердің көмегімен тарнсляциялау орындалады. Трансляциялаудың нәтижесінде басқа объектік модульдермен бірге құрастырушы бір жүктелетін модульге біріктіретін объектік модуль файлы пайда болады. Пайдаланушының командасы бойынша монитор жүктелетін модульді операциялау жүйеге орналастырады және оның орындалуын қамтамасыз етеді.
Модульді программалау
Басқа программалармен бірлесе
отырып бірнеше рет жұмыс істеуге
есептеліп жасалған, әрі тиісті түрде
безендірілген программа модуль
деп аталады. Стандартты бағыныңқы
программаның өзі модуль болып табылады,
өйткені әрбір бағыныңқы
- • пайдаланушы модуль;
- • жүктелуші модуль;
- • абсолютті модуль.
Пайдаланушы модулі
Бұл үлгідегі модуль адамға ыңғайлы программалау тілінде жасалады. Пайдаланушы модулі екі бөлімнен тұрады:
- • модуль денесі;
- • паспорт.
Модуль денесі модульдің мәнін анықтайтын оның негізгі бөлігі болып табылады, ал паспорт-бұл оны түсіндіруші бөлігі. Паспортта модульді келесі кезекте қалай пайдалану туралы қажетті қосымша информация болады.
Жүктелуші модуль
Модульдер біреше қайтара
пайдалануға арналғандықтан компьютерге
арнйы ұйымдастырылған
- • модуль денесі;
- • паспорт.
Модуль туралы қосымша информациясы бар және оны жүктеуге пайдаланылатын паспорт жүктеушіге ыңғайлы пішімде ұсынылады.
Абсолютті модуль
Бұл жүктеу нәтижесінде алынған
модуль. Ол машина тілінде ұсынылады,
жадта өз орнында және басқа модульдермен
бірлесіп жұмыс істеуге икемделеді.
Сондықтан да абсолютті модуль компьютерде
тікелей орындауға жарамды
- трансляциялауға жататын пайдаланушы модулінің мәтіні;
- қандай модулдерді трансляциялағанан соң кітапханаға жазу керектігі туралы информация;
- жеке модулдерден, оның ішінде дайын модулдерден пайдаланушыны қызықтыратын программаны жинау туралы жүйеге берілетін нұсқау;
- алынған программаларды орындау туралы нұсқау.
Қазіргі заманғы, программалау
жүйесі көп тілді болып табылады,
яғни программа жазу үшін және оның
әртүрлі модулдерін жазу үшін ең ыңғайлы
әр түрлі программалау тілдері пайдаланылады.
Трансляторлар пайдаланушы
Программалау тілдерінің қолданылуы
Кез келген компьютер информацияны
жадына жүктелген программаны орындау
арқылы өңдейді. Программалау тілі символдардың
жиынынан, осы символдардан тұратын
тілдік нұсқаулардың семантикасынан және
синтаксистен, яғни программаларды құру
ережелерінің жүйесінен құралады. Есептелуге
тиісті есептерді шығаруға операторлы
программалау тілдері пайдаланылады.
Осы тілдердің көмегімен

- Ассигнационный банк в 1786-1718гг
- Ассиметрия информации и моральный риск
- Ассимиляция мусульманского населения в России и Германии
- Ассортимент
- Ассортиментальная политика организации и ее влияние на финансовый результат
- Ассортимент безалкогольных напитков и минеральных вод
- Ассортимент бумаги и картона
- Аспекты организации службы делопроизводства
- Аспекты психосоматических соотношений в исследованиях отечественных авторов последнего периода
- Аспекты развития личности
- Аспекты социальной и организационной психологии в управлении здравоохранением
- Аспекты управления качеством
- Аспекты управления на предприятии
- А. С. Поповтың радионы ойлап табуы