If412 01

550 views

Published on

  • Be the first to comment

  • Be the first to like this

If412 01

  1. 1. IF412 – Konsep Bahasa Pemrograman Pertemuan : 01 PENDAHULUAN Von Neumann Machine CONTROL UNIT ARITHMETIC UNIT INPUT/ OUTPUT UNIT Accumulator A Register R MEMORY FOR INSTRUCTIONS AND DATA Organization of the von Neumann machine Bahasa Mesin Vs Bahasa Tingkat Tinggi : BAHASA MESIN BAHASA TK TINGGI • Sulit • Lebih Mudah • Cepat • Lebih Lambat : • Space Sedikit − Interpreter − Compiler • Space Sedikit • Portable • Terstruktur What Languages Provide ? • Model komputasi • Tipe data dan Operasi • Fasilitas Abstraksi • Pengecekan (Checking) Struktur Sintak • Context-Free-Grammer • BNF (Backus-Naur Form) • EBNF (Extended BNF) • Syntax chart ELEMEN-ELEMEN BAHASA PEMROGRAMAN • Notasi Ekspresi (Mis : prefix, infix, postfix) BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998
  2. 2. IF412 – Konsep Bahasa Pemrograman Pertemuan : 01 • Assosiativitas dan Presedensi • Representasi Ekspresi dengan TREE • Mengevaluasi Ekspresi dengan STACK Fungsi • Definisi • Bagian-Bagian Fungsi • Deklarasi fungsi • Cara pemanggilan fungsi • Mekanisme Evaluasi Fungsi Selective Evaluation if <kondisi> then <ekspresi-1> else <ekspresi-2><kondisi> adalah sebuah ekspresi yang mempunyai nilai true & false. Jika true, ekspresi-1 dievalusi, dan jika tidak (false) ekspresi-2 yang akan dievaluasi. Lexical Scope • Definisi • Contoh Fungsi Rekursif • Definisi • Activation • Jenis Fungsi rekursif : o Linear Recursive o Tail Recursive • Tahapan Evaluasi Fungsi Rekursif Linier: o winding phase o unwinding phase • Contoh : fungsi factorial int fact(int n){ if(n = = 0) return 1; else n * factorial(n-1); } fact(3) = 3 * f(2) = 3 * (2 * f(1)) = 3 * (2 * (1 * f(0))) = 3 * (2 * (1 * 1)) = 3 * (2 * 1) =3*2 =6 int g(int n, int a){ if (n = = 0) return a; BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998
  3. 3. IF412 – Konsep Bahasa Pemrograman Pertemuan : 01 else g(n-1, n*a); } f(3)=3*f(2) f(3)=3*f(2) f(3)=3*f(2) f(2)=2*f(1) f(2)=2*f(1) f(3)=3*f(2) f(1)=1*f(0) f(2)=2*f(1) f(1)=1*f(0) f(0)=1 f(3)=3*f(2) f(2)=2*f(1) f(3)=3*f(2) f(1)=1*1=1 f(2)=2*1=2 f(3)=3*2=6 Recursive evaluation of a factorial function. g(3,1)=g(2,3) g(2,3)=g(1,6) g(1,6)=g(0,6) g(0,6)=6 Evaluation of a tail-recursive factorial function Tipe Data • Definisi • Kategori o Machine Level / Basic Types : Contoh : integer, character, real dan boolean. o Language Level : Contoh : tipe-tipe terstruktur seperti Array, record, list yang dibangun dari tipe-tipe yang lebih sederhana. o User Level : Contoh : tipe-tipe yang didefinisikan oleh user, seperti gabungan beberapa data dan fungsinya, contohnya classes pada bahasa C++. BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998

×