Алгоритмдер және оның қасиеттері
Лекция, 26 Февраля 2013, автор: пользователь скрыл имя
Описание работы
Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында зерттеле бастады.
Работа содержит 1 файл
Алгоритм және оның қасиеттері2.doc
— 702.50 Кб (Скачать)
Санақ
жүйелері
Екілік
Сегіздік
Он алтылық
Келтірілген мысалдан көрініп тұрғандай команда он алтылық санақ жүйесінде ең ықшамды түрде жазылған.
Машина кодтарын пайдаланып программалау үшін қарапайым жағдайда қағаз, қалам және информацияны тасымалдаушыға машина кодындағы программаны жазуға арналған перфоратор болса жеткілікті. Командалардың он алтылық кодтары пернетақтадан компьютердің жадына ендіріледі, монитор программаны түзету процесін басқарады, ал экран командалардың коды мен деректерді он алтылық кодта бейнелеп көрсетеді. Машина кодын пайдаланып программалауда еңбек өнімділігін артыру үшін командалардың мнемоникасын және коды берілген анықтамалық кестелерді пайдалануға болады.
Бірақ қазіргі кезде
машина тілінде программалау
тек қысқа программаларға
шамалы өзгерістер өндіру
- процессор командаларының көптеген кодтарын есте сақтауға тура келеді;
- жадтың абсолюттік адрестері, әсіресе шартты өтулердің саны көп, сондықтан ұзын программалар жасауда қадағалау өте қиын;
- жазылған программаны қайта жетілдіріп, өзгертіп жасау өте күрделі жұмыс болады;
- машина кодтарында жазылған программалар өте қиын оқылады;
- тек қана сандардан тұратын программаны жасау программана жасаушыны жалықтырып жібереді және программаларда қателіктердің келуіне алып келеді.
Осылауша машина тілі цифрлар тілі бола отырып, программа жасаушы адамнан программаны жазуға және оны жөндеуге көп уақыт жұмсауды талап етендіктен, программалау үшін жарамдылығы шамалы болады.
Ассемблер және макроассемблер тілдері
Ассамблер таңбалар (символдар)тілі бола отырып,белгілі бір дәрежеде машина тілінде программа жасаудағы кемшіліктерді жоюға мүмкіндік береді.
Ассамблер тілінде
Ассамблер тілінде
Ассамблер тілінде программа
жасау үшін машина тілінде
программа жасағандағыдан көп
күрделі құралдар қажет болады
- сыртқы құрылғылармен жабдықталған дербес компьютер;
- процессордың түріне қарай резиденттік немесе жүйелік программалар.
Машина тіліне қарағанда
ассамблер тілі едәуір күрделі,
Ассамблер тілі машинаға бағдарланған тіл, яғни процессордың әрбір командасына таңбалық ат меншіктейтіндіктен машина тіліне және процессордың құрылысына тәуелді тіл болып табылады.
Программа жасауда ассамблер тілі машина тіліне қарағанда программа жасаушылардың еңбек өнімділігін арттыруға сонымен бірге процессордың программалық және аппараттық ресурстарын толық пайдалануға мүмкіндік береді.
Бұл біліктілігі жоғары
программалаушыларға жоғары деңгейлі
тілдермен жасалған
Ассамблер тілінің осындай
артықшылықтарына байланысты ендіру-шығару
құрылғыларын басқарушы
Ассамблер тілінің көмегімен программа жасаушы адам мынадай параметрлерді бере алады:
- процессордың машина тілінің әрбір командасының таңбалық атын;
- ассамблер тілінде жазылған программалық қатардың стандартты пішімін;
- командалардың нұсқаларын және адрестеудің тәсілдерін қалай көрсету керектігі туралы пішімді;
- таңбалық тұрақтыларды және бүтін сандық тұрақтыларды әртүрлі санақ жүйелерінде көрсету үлгілерін;
- программалауды ассамблерлеу (транслациялау) процесін басқарушы пседокомандаларды.
Ассамблер тілі кез
келген компьютерге түсінікті,
Ассемблер тіліндегі программалар басқа тілдерде жазылған программаларға қарағанда өлшемі жағынан шағын болады, сондықтан компьютердің жадын үнемдеуге мүмкіндік береді.
Ассемблер тіліндегі
программалар компьютердің
Ассемблер тілін әрқайсысы
машина командаларының бір
тобына баламалы макрокомандала
Трансляторлар
Жоғары деңгейлі тілдер
көптеген алгоритмдерді
Жоғары деңгейлі тілдерді программа жасауда пайдалану 60-шы жылдары басталды. Содан бері бүгінгі күнде дейін белгілі есептерді шешуге арналған әмбебап, сандай-ақ бағдарланған көптеген әртүрлі тілдер жасалып пайдаланылып келеді.
Әрбр программалау тілінің өзінің аты бар.Көптеген программалау тілінің аты олар алғаш жасалғаннан бастап тіркелген.Содан бері программалау тілдерінде қолданылатын ережелер өзгергенімен тілдер аты сол бұрынғы күйінде өзгеріссіз қалуда.
Қазіргі кезде жоғары деңгейлі программалау тілдері былай бөлінеді:
- процедуралы (көптеген классикалық программалау тілдері, мысалы, FORTAN, PASCAL, BASIC, C);
- логикалық (ЛИСПЫ, ПРОЛОГ т.б.);
- объектік-бағдарланған (С++, Java т.б.).
Қысқа программаларды жасауда процедуралық программалау тілдерін пайдалану ыңғайлы; логикалық программалау тілдерін алгоритмдерді теориялық зерттеуде жасанді интеллекті оқытып үйрену жұмыстарында деректер базасымен жасалатын операцияларда өндіріс объектілерін және әскери бөлімдерді басқару жүйелерін басқаруда, ал объектік-бағдарланған программалау тілдерін бәрінен де үлкен және күрделі программаларды (Мысалы, компьютерлік ойындарда), жасақтауда пайдаланған жөн.
Әртүрлі программалау
тілдерінің арасында
Бұл тілдердің әрқайсысына
тоқталмай-ақ, осы тілдерді машина
тіліне аударушы
Ассемблердің ендірілетін
тілі мнемокод, макроассемблер-макротіл,
ал компилятордікі-поцедуралы
Транслятор арқылы өңделіп
алынған программа тікелей
компьютерде орындалады немесе
оны басқа транцлятордың
Трансляциялау кезеңімен
орындау кезеңдері уақыт
Машина тілінде немесе жүктелуші тілде ұсынылған программа транслятор жұмысының нәтижесі болып табылады.
Транслятордың жұмысын төрт кезеңге бөлуге болады:
- лексикалық талдау. Мұның негізгі атқаратын қызыметі программаның бастапқы мәтінін одан әрі қарай өңдеу үшін ең ықшамды және ыңғайлы етіп ұсыну. Осылауша алынған мәтін транслятордың синтаксистік талдаушы деп аталатын келесі бөліміне бастапқы деректер ретінде беріледі;
- синтаксистік талдау. Бұл кезңде бастапқы мәтінді синтаксистік талқылау жүргізіледі, яғни сөйлемдердің типтерін тану және программаның құрылымын айқындау, сонымен бірге синтаксистік қателіктерді айқындаушы синтаксистік бақылау;
- объктік программаны жасау. Бұл кезеңде шын тілдің баламалы сөйлемдерінің мәні зерттеліп, симантикалық талдау жасалады;
- объктік программаны безендіру және беру. Бұл транслятор жұмысының соңғы қорытынды кезеңі. Объктік программаны кітапханаға жазуға, баспаға шығаруға болады. Пайдаланушының нұсқауы бойынша транслятор ендіретін қосымша информацияның белгілі бір бөлігі ғана баспаға беріледі.
Шығарылатын есептің
сипатына және
Трансляциялаудың жалпы
Ендірілетін - - - -
тіл
Шығарылатын --
тіл.
Сонымен бастапқы
модульді машина тілдегі
Ендірілетін тілге,
- ассамблер;
- компилятор;
- интерпретатор.
Ассемблер
Ассамблер–бұл төменгі деңгейлі тілдің трансляторы, оның жұмысы мына төменгі схемада бейнеленген.