Anda di halaman 1dari 4

TUGAS I Teori Bahasa Atomata

SOAL
1. Apa yang anda ketahui mengenai Bahasa pemrograman?
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi. Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari: 1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110 2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb. 3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb. 4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb. Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.

2. Apa yang dimaksud dengan Kompilator dan Kompilasi, jelaskan beserta tujuannya?
Kompilasi adalah penggabungan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang ditulis dalam bahasa pemrograman lain Kompilator (Inggris: compiler) adalah sebuah program komputer yang berguna untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang ditulis dalam bahasa pemrograman lain. Terlepas dari pengertiannya yang demikian relatif luas, istilah kompilator biasa digunakan untuk program komputer yang menerjemahkan program yang ditulis dalam bahasa pemrograman tingkat tinggi (semacam bahasa Pascal, C++, BASIC, FORTRAN, Visual Basic, Visual C#, Java,

TUGAS I Teori Bahasa Atomata

xBase, atau COBOL) menjadi bahasa mesin, biasanya dengan bahasa Assembly sebagai perantara. Arsitektur kompilator modern biasanya bukan lagi merupakan program tunggal namun merupakan rangkaian komunikasi antar program dengan tugas spesifik masing-masing. Programprogram tersebut beserta tugasnya secara umum terdiri dari:

Kompilator itu sendiri, yang menerima kode sumber dan menghasilkan bahasa tingkat rendah (assembly) Assembler, yang menerima keluaran kompilator dan menghasilkan berkas objek dalam bahasa mesin Linker, yang menerima berkas objek keluaran assembler untuk kemudian digabungkan dengan pustaka-pustaka yang diperlukan dan menghasilkan program yang dapat dieksekusi (executable)

Kompilator yang menggunakan arsitektur ini misalnya GCC, Clang dan FreeBASIC. Beberapa kompilator tidak menggunakan arsitektur di atas secara gamblang, dikarenakan komunikasi antar program jauh lebih lambat dibandingkan jika komunikasi dilakukan secara internal di dalam satu program. Sehingga kompilator-kompilator tersebut mengintegrasikan assembler dan linker di dalam kompilator. Namun demikian, biasanya arsitektur yang digunakan pun tidak kaku dan mengizinkan penggunaan assembler maupun linker eksternal (berguna jika assembler dan linker internal bermasalah atau memiliki galat). Kompilator yang menggunakan arsitektur ini salah satunya adalah Free Pascal.

3. Interpretasikan melalui bagan,sebuah Model Kompilator (jelaskan setiap bagiannya)!


Black box sebuah kompilator dapat digambarkan melalui diagram berikut :

Sedangkan diagram rinciannya adalah ssebagai berikut ;

TUGAS I Teori Bahasa Atomata

Analisa Program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (intermediate representation)

Sintesa Membangun program sasaran yang diinginkan dari bentuk antara program sumber merupakan rangkaian karakter

Berikut ini hal-hal yang dilakukan oleh setiap fase pada proses kompilasi terhadap program sumber tersebut: Penganalisa Leksitas Membaca program sumber karakter demi karakter. Sederetan (satu atau lebih) karakter dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan kelompok karakter (token) yang ditentukan dalam bahasa sumber. Kelompok karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut. Setiap token yang dihasilkan disimpan di dalam table simbol. Sederetan karakter yang tidak mengikuti pola token akan dilaporkan sebagai token tak dikenal (unidentified token)

Contoh : Misalnya pola token untuk identifier I adalah : I = huruf(huruf angka)*. Lexeme ab2c dikenali sebagai token sementara lexeme 2abc atau abC tidak dikenal. Penganalisa Sintaks : Memeriksa kesesuaian pola deretan token dengan aturan sintaks yang ditentukan dalam bahasa sumber. Deretan token yang tidak sesuai aturan sintaks akan dilaporkan sebagai

TUGAS I Teori Bahasa Atomata

kesalahan sintaks (sintax error). Secara logika deretan token yang bersesuaian dengan sintaks tertentu akan dinyatakan sebagai pohon parsing (parse tree). Contoh : Misalnya sintaks untuk ekspresi if-then E adalah : E if L then, L IOA, I = huruf(huruf angka)*, O <,=,>,<=,>=, A 0,19. Ekspresi if a2 < 9 then adalah ekspresi sesuai sintaks; sementara ekspresi if a2 < 9 do atau if then a2B < 9 tidak sesuai. Perhatikan bahwa contoh ekspresi terakhir juga mengandung token yang tidak dikenal. Penganalisa Semantik Memeriksa token dan ekspresi dengan acuan batasan-batasan yang ditetapkan. Batasan-batasan tersebut misalnya : 1. 2. 3. 4. panjang maksimum token identifier adalah 8 karakter, panjang maksimum ekspresi tunggal adalah 80 karakter, nilai bilangan bulat adalah -32768 s/d 32767, Operasi aritmatik harus melibatkan operan-operan yang bertipe sama

Pembangkit kode (atau pembangkit kode antara): Membangkitkan kode antara (intermediate code) berdasarkan pohon parsing. Pohon parse selanjutnya diterjemahkan oleh suatu penerjemah, misalnya oleh penerjemah berdasarkan sintak (syntax-directed translator). Hasil penerjemahan ini biasanya merupakan perintah tiga alamat (three-address code) yang merupakan representasi program untuk suatu mesin abstrak. Perintah tiga alamat bisa berbentuk quadruples(op, arg1, arg2, result), tripels (op, arg1, arg2). Ekspresi dengan satu argument dinyatakan dengan menetapkan arg2 dengan (strip, dash).

Pengoptimal kode : Melakukan optimasi (penghematan space dan waktu komputasi), jika mungkin, terhadap kode antara.

4. Sebutkan beberapa Mutu dari Kompilator!

5. Sebutkan Skenario Perancangan bahasa pemrograman dan tujuan Perancangan bahasa pemrograman!

Anda mungkin juga menyukai