Algoritma dan Pemrograman 1C Konsep Bahasa Pemrograman LANGUAGES AND TRANSLATOR Disusun kembali oleh : Henny Medyawati, Universitas Gunadarma Sumber: Pittman, Thomas dan James Petters , 1992 The Art of Compiler Design, Prentice Hall International Binanto, Iwan.2005. Konsep Bahasa Pemrograman, Penerbit Andi Bahasa dan Keperluan Penterjemah Seperti bahasa-bahasa pada umumnya, bahasa pada komputer mendefinisikan cara membuat struktur kata pada kalimat untuk berkomunikasi Bahasa pada umumnya membatasi pada bentuk apa yang bisa diucapkan Sebagai contoh: “Peter hit the ball”, bukan “ball Peter the hit” Apabila seorang Englishman ingin berkomunikasi dengan orang Perancis (Frenchman) dan Englishman ini tidak mengetahui sama sekali bahasa Perancis, maka diperlukan translator Compiler (Kompilator) Kompilator adalah program komputer yang bertindak seperti human translator It reads statements in one computer language, and if they make sense in that language, it translates them into statements with the same meaning in another computer language Kompilator menerjemahkan program dari satu bahasa pemrograman (disebut dengan source language) menjadi suatu program dalam bahasa pemrograman lain (disebut target language) Kompilator (lanjutan) Translator yang paling sederhana (simplest) membaca kata-kata pada bahasa pemrograman sederhana, menerjemahkan kata-kata secara langsung ke dalam sejumlah instruksi yang digunakan pada komputer Inilah yang disebut dengan assembler, dan source language disebut dengan assembly language Kompilator secara umum digunakan pada bahasa yang lebih kompleks dimana tidak ada hubungan langsung antara kata-kata pada source language dengan target language Kompilator (lanjutan) Tujuan Penggunaan translator yaitu mempermudah proses pembentukan program dalam bahasa mesin Source language yang dicompile, biasa disebut/dikenal dengan high level language Interpreter Interpreter bekerja seperti translator yaitu membaca program dalam high level language, menerjemahkan dalam waktu cepat (seketika) seperti manusia menerjemahkan secara verbal Masih ingat fungsi kompilator? Kompilator menerjemahkan program komputer ke dalam bentuk bahasa mesin yang dieksekusi pada waktu yang berbeda Interpreter mengeksekusi pada saat program dibaca Often process a line of source program much faster than a compiler STRUKTUR UMUM COMPILER Program sumber Analisis Lexical Lexical Token Symbol Table Tabel lain Analisis Syntactic Parse Tree Analisis Semantik Tahap Penghasil Object Code Tahap pengenalan kode sumber Object code dari kompilasi lain Intermediate Code Optimisasi Intermediate code yang sudah dioptimisasi Penghasil Kode Linking Executable code Struktur umum compiler (lanjutan) Proses translasi suatu program dari bentuk syntax aslinya ke dalam bentuk executable, merupakan pusat dari implementasi semua bahasa pemrograman yang ada Secara logika, translasi dibagi menjadi dua, yaitu: a. analisis input program sumber b. synthesis program objek yang executable Dalam banyak translator, tingkatan logika ini tidak dengan jelas terpisah, melainkan bercampur dan berselang-seling antara analysis dan synthesis dalam basis statement-by-statement Grammar Salah satu karakteristik yang dipelajari dalam bahasa sehari-hari adalah grammar Grammar pada suatu bahasa mendefinisikan bentuk yang benar dari suatu kalimat Contoh: sentence noun phrase verb noun-phrase verb “hit” noun phrase article noun proper-name proper-name “Peter” Grammar (lanjutan) Bahasa pemrograman umumnya dikategorikan dalam 2 jenis grammar, (1) mendefinisikan kata-kata dalam bahasa tersebut, (2) mendefinisikan bagaimana kata-kata tersebut dapat digabungkan Primary Grammar Disebut juga phrase-structure grammar, menspesifikasikan bagian utama pada kompilator dan interpreter, yang disebut dengan parser Grammar ini menspesifikasikan bagaimana kata-kata di dalam bahasa pemrograman dapat tergabung dan membentuk program yang valid secara sintaks Parsing adalah istilah pada bahasa yang menggambarkan proses analisis sebuah kalimat dalam bahasa menurut bentuk grammarnya Secondary Grammar, Umumnya secondary grammar digunakan untuk menspesifikasikan bentuk yang benar, spelling dari kata-kata pada bahasa komputer disebut juga dengan grammar leksikal Bagian dari kompilator yang menganalisis kata-kata secara individu pada input program disebut dengan scanner Konsep Dasar Pemrograman Program dapat diartikan: a. untuk mendeskripsikan instruksi-instruksi tersendiri, disebut source code yang dibuat oleh programmer b. untuk mendeskripsikan keseluruhan bagian dari perangkat lunak yang executable Himpunan atau kumpulan instruksi tertulis yang dibuat oleh programmer atau suatu bagian executable dari suatu perangkat lunak Konsep dasar pemrograman (lanjutan) Pemrograman : cara membuat program program komputer suatu kumpulan urutan perintah ke komputer untuk mengerjakan sesuatu Bahasa : suatu kumpulan simbol-simbol atomic terbatas kumpulan simbol disebut alfabet Empty string dilambangkan dengan “ “ yaitu satu untaian yang tidak terlihat Untaian yang menjadi bagian dari suatu bahasa disebut kata atau kalimat Bahasa yang dapat dimengerti oleh komputer disebut bahasa pemrograman Konsep Bahasa Pemrograman Bahasa pemrograman diciptakan untuk memecahkan masalah-masalah tertentu yang spesifik sehingga aplikasi yang dibuat oleh suatu bahasa pemrograman akan mempunyai/menempati suatu domain yang spesifik Aplikasi Bisnis : COBOL, spreadsheet Sist. Inf. Perbankan, Sist. Inf. Asuransi, dll Enterprise : SAP, Open ERP Scientific : FORTRAN, C, C++, Matlab Pertanyaan Mengapa bahasa pemrograman perlu dipelajari? Mengapa bahasa pemrograman terus berevolusi? Tugas Kelompok Bentuk Kelompok: 6-7 orang anggota 1 Introduction 2 Syntax 3 Semantic 4 Translation 5 Pragmatics 6 Abstraction & Generalization 7 Types ( Values, Domains and Types) 8 Logic Programming 9 Functional Programming 10 The Imperative Programming Paradigm 11 The Concurrent Programming 12 Object Oriented Programming