Implementasi Proc and Func

Slides:



Advertisements
Presentasi serupa
PASCAL - 8 MODUL.
Advertisements

Dasar Pemrograman Komputer
Aturan Semantik: ContextChecking Cx. C0 masuk ke suatu scope C1 option mencetak tabel simbol (tabSim) scope ybs C2 keluar daru suatu scope C3 periksa.
Procedure.
The Toy Grammar of the Course1 The Grammar of the Course program: scope R38 R0 scope:'{' C0 R1 declarations C1 R3 ';' statements C2 R5 '}' statements:,
Code Generation Procedure and Function with Parameters.
Rahmat Deddy Rianto Dako, ST, M.Eng
STRUKTUR DATA PERTEMUAN 5
Instruksi macro Instruksi macro (macro) Contoh:
Pemrograman Terstruktur
LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI.
Method.
Function.
TABEL INFORMASI / SIMBOL
Situasi Saat Program Berjalan (Run-time Environment)
Pemrograman Berorientasi Objek Bab 1 – Pemrograman Terstruktur.
STACK (TUMPUKAN).
Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Algoritma dan Struktur Data SubAlgoritma (Prosedur & Fungsi)
Fungsi Lecture 7. Motivation Complexity of programming problem  more difficult to consider the solution as a whole  clue: dividing the problem into.
PL/SQL PROGRAMMING PL/SQL adalah prosedur berkelanjutan dari Oracle -SQL yang menawarkan satu bentuk bahasa pemrograman. PL/SQL memungkinkan user atau.
STORED PROCEDURE Achmad Yasid, SKom.
Fungsi Fungsi.
Fungsi Fungsi (Sub Program) :
1 Tabel Simbol (Ref : Aho 2.7, 7.6 / k10.ps). 2 Pendahuluan Definisi tabel simbol : Tabel/struktur data yg. digunakan utk. menyimpan informasi yg. berkaitan.
SINTAK STORED PROCEDURE
Teknik Pemrog. Terstuktur 2
Struktur kontrol.
Pertemuan 12 Procedure dan Macro
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
// Contoh program c++ dengan fungsi template
OPERATOR DAN FUNGSI MATEMATIK. Operator  Assignment operator Assignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti oleh tanda.
Pengantar Teknik Kompilasi
Struktur Kontrol Struktur kontrol if Struktur kontrol if-else
Stack Stack adalah salah satu bentuk list dimana penghapusan dan pemasukan elemen hanya dapat dilakukan pada satu posisi yaitu di posisi akhir list. Posisi.
if (condition) statement if (x == 100) cout << "x is 100";
Stack.
Tabel Informasi/ Tabel Simbol
Istiqomah, S.Kom/Tekkom 2013
TABEL INFORMASI atau TABEL SIMBOL
UNIVERSITAS BRAWIJAYA
SUBROUTINE: Prosedure dan Fungsi
Aliran Kendali (Flow Control)
Bifurcation & Lompatan Instruksi
Pseudocode – Tipe Data, Variabel, dan Operator
Latihan #0 Dengan menggunakan pernyataan looping WHILE dan jumlah instruksi sesedikit mungkin, tuliskan cuplikan program (bukan program lengkap, hanya.
Pembentukan Kode (Simulasi)
Bifurcation & Lompatan Instruksi
Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom
Person 9.
Teknik Optimasi.
Stack.
Method (Metode).
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
Stack.
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
Jump dan Call.
STRUKTUR DATA.
STRUKTUR DATA PERTEMUAN 4
FUNCTION Muzamil Indra ( ) Oky Putranto ( )
Percabangan dalam VB6: GoTo, GoSub, Sub, Function
Rekursif By Serdiwansyah N. A..
STRUKTUR DASAR ALGORITMA
UNIVERSITAS BRAWIJAYA
if (condition) statement if (x == 100) cout << "x is 100";
Tim ALPRO Teknik Informatika
Teknik Optimasi by kustanto
Jump dan Call.
Semantics Analyser by Kustanto
Rekursif Yuliana Setiowati. Rekursif Proses yang memanggil dirinya sendiri. Merupakan suatu fungsi atau prosedur Terdapat suatu kondisi untuk berhenti.
TEKNIK OPTIMASI & TABEL INFORMASI
Transcript presentasi:

Implementasi Proc and Func Please revise the parser.cup so that it accommodates the rules needed for proc and func. Please revise parts of the generate and context checker class that define the semantic action of the rules. The revision mainly accommodates the calling sequence and the return sequence.

{ c0 r1 var a c3 c4 : int c5 c11 c7 proc b c3 c24 r7 c22 scope R42 R9 C7 Var c c3 c4 : int c5 c11 c7 Int func d C3 C26 R7 C22 C23 C5 C0 R2 expression C36 C11 C11 C2 R6 R43 R9 C7 % end of declaration c1 r3 ; statement1 %calling b b c6 %assign or call, it is a call C28 C29 R45 R44 C7, %calling d in expression a:= c20 r31 a+c*d %note d c6 C37 R49 C29 C8 R50 C7 % suborCall C16 C11 R33 C7 % assignEXpression Statement2 C2 r5 }

Butir Context Checking / Analisis Semantik untuk Procedure dan Fungsi Fungsi dan prosedur. C22 masukkan lexic level dan order number ke dalam tabel simbol C23 masukkan type int atau bool. C36 periksa bahwa type dari ekspresi sama dengan type dari fungsi. Parameter. C24 masukkan prosedur ke dalam tabel simbol. C25 masukkan parameter ke dalam tabel simbol. C26 masukkan fungsi ke dalam tabel simbol. C27 keluar dari scope yang mengandung parameter. C28 periksa bahwa identifier merupakan nama prosedure. C29 periksa bahwa fungsi atau prosedur tak punya parameter. C30 Push jumlah argument = 0 C31 periksa argument terhadap parameter. C32 periksa bahwa semua argumen sudah dilihat. Pop jumlah argument. C33 periksa bahwa identifier adalah nama fungsi. C34 tambah nilai jumlah argument. C35 masukkan jumlah argument (parameter) ke dalam tabel simbol. Pop jumlah argument. C37 if identifier suatu fungsi maka C33 else C20

Code generation rules for proc and func R42 buat instruksi unutk kembali dari prosedure. R43 buat instruksi untuk kembali dari fungsi. R44 buat instruksi untuk memanggil suatu prosedur. R45 buat instruksi untuk membentuk tanda block untuk pemanggilan prosedur. R46 buat instruksi untuk membentuk tanda block untuk pemanggilan fungsi. R47 buat instruksi untuk memanggil fungsi. R48 buat instruksi untuk menyimpan argument untuk pemanggilan prosedu/fungsi. R49 if identifier suatu fungsi maka R46 else R31 R50 if identifier suatu fungsi maka R47 else R32