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

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

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

Алгоритм[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

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

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

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

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

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

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

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