1 / 24

Konsep Dasar Teknik Kompilasi

Konsep Dasar Teknik Kompilasi. Sigit Widiyanto , ST., MMSi ., MSc. Quick Basic. Turbo Pascal. Turbo C++ 4.5. Java Compiler (Command Prompt). Translator. Translator :

mariah
Télécharger la présentation

Konsep Dasar Teknik Kompilasi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. KonsepDasarTeknikKompilasi SigitWidiyanto, ST., MMSi., MSc

  2. Quick Basic

  3. Turbo Pascal

  4. Turbo C++ 4.5

  5. Java Compiler (Command Prompt)

  6. Translator Translator : • Adalahsuatu program yang memlikiinputansebuah program yang ditulisdengansatubahasapemrograman (source language) untukditerjemahkankebahasa lain (object language) • Contoh source language: high level language, seperticobol, pascal, fortran • Contoh object language: low-level language ataumesin language.

  7. Assembler *.asm Object code *.exe /*.com Macam-macam Translator • Assembler • Source Code : Bahasa Assembly • Object Code : BahasaMesin

  8. Source Code Compiler Result Macam-macam Translator • Compiler • Source Code : Bahasatingkattinggi • Object Code : Bahasamesinataubahasa assembly • Source Code dan data diprosesberbeda Data Execution Object Code

  9. Interpreter Result Data Macam-macam Translator • Interpreter • Tidakmenghasilkan object code. • Tetapi, hasiltranslasinyadalambentuk internal. • Program indukharusselaluberbedadengan compiler. Source Code

  10. Compiler vs Interpreter

  11. ApaituteknikKompilasi? • Teknik: • Metodeatau Cara • Kompilasi: • Proses mengabungkansertamenterjermahkansesuatu (source program) menjadibentuk lain.

  12. Source Program Compiler OBJECTPROGRAM ERRORMESSAGES Jadiapaitukompilator? • Kompilator (compiler) adalahsebuahprogram yang membacasuatu program yang ditulisdalamsuatubahasasumber(source language) danmenterjemah-kannyakedalamsuatubahasasasaran(target language).

  13. Proses Kompilasi • analisa: program sumberdipecah-pecahdandibentukmenjadibentukantara (inter-mediate representation) • sintesa: membangun program sasaran yang diinginkandaribentukantara

  14. Fase-fase Proses Kompilasi

  15. PenganalisaLeksikal • Membacaprogram sumber, karakter demi karakter. Sederetan (satuataulebih) karakterdikelompokkanmenjadisatukesatuanmengacukepadapolakesatuankelompokkarakter(token)yang ditentukandalambahasasumber. • Kelompokkarakter yang membentuksebuah token dinamakanlexemeuntuk token tersebut. Setiap token yang dihasilkandisimpan di dalamtabelsimbol. Sederetankarakter yang tidakmengikutipola token akandilaporkansebagaitoken takdikenal(unidentified token).

  16. ContohPenganalisaLeksikal • Misalnyapola token untukidentifier Iadalah : I = huruf(hurufangka)*. Lexeme ab2c dikenalisebagai token sementara lexeme 2abc atauabCtidakdikenal.

  17. PenganalisaSintaks • Memeriksakesesuaianpoladeretan token denganaturansintaks yang ditentukandalambahasasumber. Sederetan token yang tidakmengikutiaturansintaksakandilaporkansebagaikesalahansintaks(sintax error). • Secaralogikaderetan token yang bersesuaiandengansintakstertentuakandinyatakansebagaipohon parsing (parse tree).

  18. ContohPenganalisaSintaks • Misalnyasintaksuntukekspresiif-then E adalah : E if L then, L  IOA, I = huruf(hurufangka)*, O  <=><=>=, A  01...9. Ekspresiif a2 < 9 then adalahekspresisesuaisintaks; sementaraekspresiif a2 < 9 do atauif then a2B < 9tidaksesuai. Perhatikanbahwacontohekspresiterakhirjugamengandung token yang tidakdikenal.

  19. PenganalisaSemantik • Memeriksatoken danekspresidaribatasan-batasan yang ditetapkan. Batasan-batasantersebutmisalnya : • Panjangmaksimum token identifier adalah 8 karakter, • Panjangmaksimumekspresitunggaladalah 80 karakter, • Nilaibilanganbulatadalah -32768 s/d 32767, • Operasiaritmatikaharusmelibatkanoperan-operan yang bertipesama.

  20. Pembangkitkodeantara • Membangkitkankodeantara (intermediate code) berdasar-kanpohon parsing. Pohon parse selanjutnyaditerjemahkanolehsuatupenerjemah yang dinamakanpenerjemahberdasarkansintak(syntax-directed translator). Hasilpenerjemahaninibiasanyamerupakanperintahtigaalamat(three-address code) yang merupakanrepresentasi program untuksuatumesinabstrak.

  21. Pembangkitkodeantara • Perintahtigaalamatbisaberbentukquadruples (op, arg1, arg2, result), tripels(op, arg1, arg2). Ekspresidengansatuargumendinyatakandenganmenetapkanarg2 dengan - (strip, dash)

  22. PengoptimalanKode • Melakukanoptimasi (penghematanspace danwaktukomputasi), jikamungkin, terhadapkodeantara.

  23. PembangkitanKode • Membangkitkankodedalambahasa target tertentu (misalnyabahasamesin).

  24. Contoh • Identifier: • Lexeme: • Quadruples:

More Related