Программалау тілдері. Программалау тілдерінің деңгейлері. Трансляторлар.

Бағдарламалау» пәні бойынша сұрақтар

Алгоритмдеу теориясының негіздері. Алгоритмнің негізгі қасиеттері. Алгоитмнің ұсыну әдістері. Стандартты типтік алгоритмдер. Компьютерде есеп шығару кезеңдері.

Алгоритм[1], алгорифм (ағылшынша: algorіthm, algorіsmus — Әл-Хорезмидің атынан шыққан) — бастапқы берілген мәліметтермен бір мәнде анықталатын нәтиже алу үшін қай амалды (жұмысты) қандай ретпен орындау қажеттігін белгілейтін есептерді (мәселелерді) шешу (математикалық есеп-қисаптар орындау, техникалық объектілерді жобалау, ғылыми-зерттеу жұмысын жүргізу т.б.) тәсілдерінің дәл сипаттамасы. Алгоритм — математика мен кибернетиканың негізгі ұғымдарының бірі. Агоритмді орындау алгоритмдік процесс деп аталады.

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

Алгоритм — қазіргі математикада, оның ішінде электронды есептеуіш машинада қолданылатын негізгі ұғымдардың бірі. Белгілі бір теңдеу түбірінің жуық мәнін кез келген дәлдікпен табу оған арналған Алгоритммен есептеледі. Компьютердің кең қолданылуына байланысты Алгоритм жаңа мағынаға ие болды. Берілген есепті шешу барысында орындаушыға біртіндеп қандай әрекеттер жасау керектігін түсінікті әрі дәл көрсететін нұсқау да Алгоритм деп аталады. Алогритмді орындаушы — адам, ЭЕМ немесе робот. Әрбір нұсқау — бұйрық. Ал орындаушының жүзеге асыра алатын бұйрықтар жиыны бұйрықтар жүйесі деп аталады. Мысалы, у = (ax + b) (cx - d) функциясын есептеу ЭЕМ-да мынадай әрекеттерден құралады:

1. а-ны x-ке көбейту R1 деп,

2. оған b-ны қосу нәтижесі R2 деп,

3. с-ны х-ке көбейту R3 деп,

4. сх-тан d-ны алу R4 деп,

5. R2-ні R4-ке көбейту у деп белгіленеді.

Алгоритмнің бұйрықтары бірінен кейін бірі кезекпен орындалады. Бағдарлама Алгоритм тілінде жазу, бейнелеу мағынасын береді. Компьютерде Алгоритмнің сызықты, тармақты, циклді, логикалық,модельдік, параллельдік, тізбекті т.б. түрлері қолданылады.[2]

Программалау тілдері. Программалау тілдерінің деңгейлері. Трансляторлар.

Программалау тілідеп деректерді жазуға және оларды белгілі ережелер бойынша өңдеуге арналған адам мен компьютерді байланыстыратын формальды тілді айтамыз.

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

· машинаға тәуелді тілдер;

· машинаға тәуелсіз тілдер;

Машинаға тәуелді тілдер өз кезегінде былай бөлінеді:

· машина тілі;

· машинаға бағдарланған тілдер;

Машинаға бағдарланған тілдер кейде автокодтар деп те аталады. Машинаға бағдарланған тілдердің екі деңгейі бар:

· символдық кодтау тілдері, басқаша айтқанда мнемокодтар;

· макротілдер.

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

Машинаға тәуелсіз тілдерпрограммаларды бөлшектеу дәрежесіне қарай екі топқа бөлінеді:

· процедулалы- бағдарланған тілдер;

· проблемалы – бағдарланған тілдер

Процедулалы – бағдарланған тілдересепті шешу алгоритмін сипаттауға арналған, сондықтан да оларды кейде алгоритмдік тілдердеп те атайды. Алгоритмдік тіл деген ұғым программалау тілі деген ұғыммен сәйкес елмейді. Егер алгоритмдік тілде жазылған алгоритмдік жазу компьютерге ендіруге тікелей жарамды және дайын жұмысшы программаға түрленетін болса, онда мұндай алгоритмдік тіл программалау тілі де бола алады. Кейбір алгоритмдік тілдер тек оларға кейбір құралдарды қосқаннан кейін ғана программалау тілі болады.

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

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

Машина тілі
Компьютердің ақпараттық бөлігі тікелей түсінетін жалғыз тіл: ол – машина тілі.
Машина тілі деп копьютердің құрамындағы процессор командаларының кодын айтамыз.
Архитектурасы әртүрлі процессорлардың машина тілдері де түрліше болады. Тек өзара үйлестірілген процессорларда ғана машина тілдері бірдей болады. Мұндай процессорлардың командалар жүйесі төменнен жоғары қарай үйлесімділікте болады деп айтылады.
Сонымен әрбір компьютердің өзінің машина тілі болады және ол тек осы тілде жазылған программаларды ғана тікелей орындай алады.

Машина тілінде программалау деп программаға енетін командалардың реальды кодтарын тікелей жазуды айтамыз.

Командалардың кодтары әр түрлі санақ жүйелерінде берілуі мүмкін:

· екілік;

· сегіздік;

· он алтылық;

Мысалы, процессордың А аккумляторының ішіндегісін В регистіріне жөнелту дегенді білдіретін МОV В,А командасының кодын әр түрлі санақ жүйелерінде былай жазып көрсетуге болады:

Санақ жүйелері Коды

Екілік 010001111

Сегіздік 107

Он алтылық 47

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

· процессор командаларының көптеген кодтарын есте сақтауға тура келеді;

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

· жазылған программаны қайта жетілдіріп, өзгертіп жасау өте күрделі жұмыс болады;

· машина кодтарында жазылған программалар өте қиын оқылады;

· тек қана сандардан тұратын программаны жасау программана жасаушыны жалықтырып жібереді және программаларда қателіктердің келуіне алып келеді.

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

Наши рекомендации