Си және Паскаль бағдарламалық тілдеріне синтаксистік анализ жасау

Автор: Пользователь скрыл имя, 04 Марта 2013 в 07:51, курсовая работа

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

Паскаль және Бейсик бағдарламалық тілдерінің әрі қарай зерттелінуі Си бағдарламалық тілімен танысуға алып келді. Си бағдарламалық тілі арқылы біз кез-келген бағдарламаны жазып, нәтижесін шығарамыз. Паскаль және Бейсик тілдерінде кейбір мүмкіндіктер шектеулі. Си бағдарламалық тілінің пайда болуы әр түрлі тiлдердің эволюциялық дамуының нәтижесi болып табылады. Эволюция бойынша қолданбалы бағдарламалауда алдымен Алголь, Коболь, Паскаль, Фортран сынды тілдер пайда болса, кейіннен жүйелiк-тiркеулi ассемблерлерден ЭЕМ-нiң тiркеулi архитектураларына негізделген ,трансляторларда жасалған Си тіліне өту кезеңі басталды.

Содержание

Кіріспе…………………………………………………………... 1
1.Си бағдарламалық тілінің Паскаль бағдарламалық тілінен артықшылығы ..2
1.1 Паскаль бағдарламалық тілінің мүмкіншіліктері (математикалық өрнектер, операторлар, циклдар)………………………………………………...7
1.2 Си бағдарламалық тілінің мүмкіншіліктері (математикалық өрнектер, операторлар,циклдар)…………………………………………………………...12
1.3 Си тілінің командаларының кейбір түрлері(масивтер)...............................14
Қорытынды………………………………………………………………………15
Пайдаланылған әдебиеттер тізімі………………………………………………16
Қосымшалар……………………………………………………………………...21

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

Курсовая работа Жарас.doc

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

                                  

                     

 

              Қазақстан Республикасының Ғылым  және Білім Министірлігі

              Қарағанды Мемлекеттік Техникалық Университеті

 

 

 

                                  

     

               

                                                                                    << Энергетика кафедрасы>>

 

 

 

 

                                            

 

 

                                        Курстық жұмыс

 

 

Тақырыбы: Си және Паскаль бағдарламалық тілдеріне синтаксистік анализ жасау

 

   

 

 

 

 

 

 

                                                                                     Дайындаған: Кәрімқұл Ж.Н

                                                                                     СИБ 09-1 тобының студенті                                                                                                                        

                                                                              

                                                                                     Тексерген: Торыбаев С.Т

 

 

 

 

 

                                       Қарағанды 2010

                           


 

 

Қазақстан Республикасының  ғылым және білім министрлігі 

                Қарағанды мемілекеттік техникалық университеті

 

Факултет: Ақпараттық техналогия факултеті

Кафедра:Автоматты жобалау  жүйесі кафедрасы                                                                 

                                                                                       <<@”Бекітемін>>

                                                                                Кафедра меңгерушісі

Коккоз М.М. _____________

 «___»_____________ 2010г.

                                

                                  КУРСТЫҚ ЖОБАНЫ ОРЫНДАУҒА ТАПСЫРМА

 Пән бойынша Жүйелік бағдарламамен қамтамасыз ету

Студент  Кәрімқұл Жарас   Назымхихматұлы____________ группа СиБ-0,9-1

 

Тақырыбы: Си тілімен Паскаль тіліне синтаксистік анализ жасау , программалық тілдердің артықшылығы мен айырмашылығы  

 

Жұмысқа бастапқы мәліметтер: Барлық тапсырмалар пән бойынша курстық жобалау бойынша электрондық оқулықта және әдiстемелiк нұсқаулар көрсетілген. Варианттың ретi студенттiң сынақ кiтапшасының нөмiрiнiң соңғы екi цифрларының нөмері қабылданады

 

 

 

 

Тапсырманың берілген күні <<______>>_________________________ 2010 ж.

 

Жетекшісі _______________________________қолы_____________________

 

Студент_________________________________ қолы_____________________

 

 

 

 

 

 

 

 

 


 

МАЗМҰНЫ

 

 

Кіріспе…………………………………………………………...           1

1.Си бағдарламалық  тілінің Паскаль бағдарламалық  тілінен артықшылығы ..2

1.1 Паскаль бағдарламалық  тілінің мүмкіншіліктері (математикалық  өрнектер, операторлар, циклдар)………………………………………………...7

1.2 Си бағдарламалық  тілінің мүмкіншіліктері (математикалық өрнектер, операторлар,циклдар)…………………………………………………………...12

1.3 Си тілінің командаларының кейбір түрлері(масивтер)...............................14

Қорытынды………………………………………………………………………15

Пайдаланылған әдебиеттер тізімі………………………………………………16

Қосымшалар……………………………………………………………………...21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  Кiрiспе

 

 

    Паскаль және Бейсик бағдарламалық тілдерінің әрі қарай зерттелінуі Си бағдарламалық тілімен танысуға алып келді. Си бағдарламалық тілі арқылы біз кез-келген бағдарламаны жазып, нәтижесін шығарамыз.    Паскаль және Бейсик   тілдерінде кейбір мүмкіндіктер шектеулі. Си бағдарламалық тілінің пайда болуы әр түрлі тiлдердің эволюциялық дамуының нәтижесi болып табылады. Эволюция бойынша қолданбалы бағдарламалауда алдымен Алголь, Коболь, Паскаль, Фортран сынды тілдер пайда болса, кейіннен жүйелiк-тiркеулi ассемблерлерден ЭЕМ-нiң тiркеулi архитектураларына негізделген ,трансляторларда жасалған Си тіліне өту кезеңі басталды.

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

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

  • Жеңіл бағдарламалауға негізделген;
  • Паскаль программалау тiлi оңай қабылданатын формадағы алгоритмдерді, өте маңызды тұжырымдамаларды қамтып көрсетедi.
  • Паскаль тiлі құрылымдық бағдарламалау идеясын және құрылымдық мәлiмет құрамын жүзеге асыруға айқын мүмкiндiк бередi.

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

 

 

 

 

1 Си бағдарламалық тілінің Паскаль бағдарламалық тілінен артықшылығы

 

 

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

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

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

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

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

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

  • Шектеулі мәліметтер типінің қолданылуы, яғни арифметикалық мәліметтер типі алынады.
  • Бір аттас объектілері бар ішкі блоктар екі деңгейден аспауы тиіс.
  • Процедуралық блоктар BEGIN-блоктардың ішінде орналаспауы тиіс , ішкі процедуралық блоктар шектелмейді.
  • Процедуралық блоктардың өлшемі ретінде ашық оң шекаралы бір өлшемді (динамикалық)массивтер қолданылады; Паскаль бағдарламасында массив элементтерінің адресі нөлдік элементтен басталады.
  • әр түрлі мәліметтер типін араластырып қолдануды шектеу.

 

 

1.1 Паскаль бағдарламалық тілінің мүмкіншіліктері (математикалық өрнектер, операторлар, циклдар)

 

 

Паскаль тіліндегі өрнектер. Аталған элементтерге қолданылатын амалдар тізбегін беретін тіл құрылымы өрнек деп аталады. Өрнек операндалардан(операцияда қолданылатын берілген элемент), операциялар орындалатын өлшем мен өрнектерден(барлық типтардың тұрақтылары мен айнымалылары), дөңгелек жақша мен операция белгісінен тұрады. Операция операндаларға орындалатын амалдарды анықтайды. Мысалы (X+Y-10) өрнегінде X, Y және 10 – операндалар, ал "+" және "-" –қосу, алу амалдары.

Кей жағдайда өрнек тек  бір айнымалыдан немесе тұрақтыдан тұруы мүмкін. Дөңгелек жақшалар операциялардың ретін білдіру мақсатында қарапайым  арифметикалық өрнектерде де қойылады.

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

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

Мысалы, -А - унарлы , Х+У – бинарлы операция.            

Паскаль тіліндегі арифметикалық өрнек және операциялар. Арифметикалық өрнек дегеніміз арифметикалық типті операндалардан,

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

1) Бүтін немесе нақты тұрақты амал белгісінсіз;

2) Бүтін немесе нақты айнымалы;

3) Бүтін немесе нақты  типті массив элементі;

4) Бүтін немесе нақты  мән қабылдайтын функция.

Айнымалының мәні немесе массив элементі арифметикалық өрнектен бұрын анықталу қажет. Өзге арифметикалық өрнектер жоғарыда айтылғандай дөңгелек жақшалар мен арифметикалық операцияларды қолдану арқылы құрылады.

Арифметикалық операциялар  өрнекте нақты және бүтін типтегі  операндалардың мәндеріне арифметикалық  амалдар қолданады. Ол 1-ші кестеде көрсетілген.

Кесте1 . Паскаль тіліндегі арифметикалық операциялар

 

Амалдар

Амал аты

Операнда типтері

Нәтиже типтері

+

Қосу

бүтін

бүтін

-

Азайту

нақты

нақты

*

Көбейту

бүтін

бүтін

/

Бөлу

нақты

нақты

Div

Бүтіндей бөлу

бүтін

бүтін

mod

Қалдықпен бөлу

нақты

нақты

AND

Арифметикалық және

бүтін

Нақты

SHL

Солға жылжу

нақты

нақты

SHR

Оңға жылжу

бүтін

Бүтін

OR

Арифметикалық немесе

бүтін

Бүтін

XOR

Қысқартылған дизъюнкция

бүтін

бүтін

       
       
       
       

Информация о работе Си және Паскаль бағдарламалық тілдеріне синтаксистік анализ жасау