From: dulimart@ahmeek.cps.msu.edu (Hansye S. Dulimarta)
Newsgroups: alt.culture.indonesia
Subject: Re: BP-2
Date: 21 Dec 92 23:04:52 GMT
Organization: Department of Computer Science, Michigan State University
NNTP-Posting-Host: ahmeek.cps.msu.edu

In article <1992Dec14.022714.14610@random.ccs.northeastern.edu> okidz@ccs.northeastern.edu (Oki D Zakaria) writes:
>
>Rekan-rekan a.c.i,
>
>Dibawah ini saya ketengahkan 'struktur' dari BP-2. Yang ditampilkan
>disini baru gambarannya.
>
>
>program NamaProgram;
>
>// penggunaan modul, jika perlu
>gunakan modul InputOutput;
>gunakan modul Berkas;
>gunakan modul Modem;
>gunakan modul Printer;
>gunakan modul PemrosesString;
>
>// deklarasi konstanta
>konstanta
>   BILANGANKECIL : bilangan kecil = 127;
>   BILANGAN : bilangan = 32767;
>   
>// deklarasi jenis data
>jenis data
>   Karakter = karakter;
>   StringBesar = string dinamik;        
>   String20 = string [20];
>   Bkecil = bilangan kecil;             // "short integer" 
>   Bilang = bilangan;                   // "integer"
>   BBesar = bilangan besar;             // "long integer"
>   Pecahan  = pecahan;                  // "real"
>   PBesar   = pecahan besar;            // "real double"
>
>   Daftar = deret bilangan [BILANGANKECIL];
>   Daftar2 = deret bilangan [BILANGANKECIL, BILANGANKECIL];
>   Daftar3 = deret bilangan [BILANGANKECIL, BILANGANKECIL, BILANGANKECIL];
>      
>   KelompokNama = deret String20 [BILANGAN];
>   
>// deklarasi variabel
>variabel
>   Nama : KelompokNama;            // diakses dengan Nama[32767]
>   PenyanggaBerkas : StringBesar;  // harus diakses dengan fungsi/prosedur
>
>fungsi NamaFungsi(Parameter; Parameter; ...) : JenisData;
>// Parameter dinyatakan dalam bentuk NamaVariabel: JenisData
>
>// deklarasi konstanta lokal
>// deklarasi jenis data lokal
>// deklarasi variabel lokal
>{
>// pernyataan
>//     .
>// pernyataan lainnya
>   NamaFungsi =    ; // hasil kalkulasi diberikan disini
>}
>
>prosedur NamaProsedur(Parameter; Parameter;...);
>// Parameter dinyatakan dalam bentuk NamaVariabel: JenisData
>// atau
>// ref NamaVariabel: JenisData untuk akses melalui referensi
>
>// deklarasi konstanta lokal
>// deklarasi jenis data lokal
>// deklarasi variabel lokal
>{
>// pernyataan
>//     .
>// pernyataan lainnya
>}
>
>
>{                          // awal program
>// pernyataan
>//     .
>// pernyataan lainnya
>}                          // akhir program
>
>
>Penggunaan "modul" di atas adalah untuk memberikan "extensibility"
>bagi BP-2 ini. modul tersebut bisa berupa program BP-2 yang telah
>dirakit, ataupun modul lain yang berasal dari bahasa lain (C).
>Implementasinya saya masih belum tahu, tapi akan diusahakan kode
>obyek dari BP-2 ini kompatibel dengan kode obyek yang dihasilkan
>oleh perakit-perakit lain yang telah mapan, sehingga kode obyeknya bisa
>di-link dengan 'mudah'. 
>
>
>modul PemrosesString;
>
>pengantara
>// deklarasi konstanta (bisa diakses dari program utama)
>// deklarasi jenis data (idem)
>// deklarasi variabel (idem)
>
>// pola fungsi
>fungsi JumlahKata(NamaApasaja : string besar): bilangan besar;
>
>// pola prosedur
>prosedur TambahData(ref NamaApasaja : string besar; 
>                    NamaApasajaTapiBeda : string [20]);
>
>implementasi
>// deklarasi konstanta lokal
>// deklarasi jenis data lokal
>// deklarasi variabel lokal
>
>	fungsi JumlahKata(StringSaya : string besar): bilangan besar;
>	{
>	// menghitung jumlah kata di StringSaya
>	}
>
>	prosedur TambahData(ref StringSaya : string besar; 
>	                    ElemenBaru : string [20]);
>	{
>	// proses menambah elemen baru di StringSaya
>	}
>
>{
>// inisialisasi, kalau ada
>}                              // akhir modul
>
>
>Jenis data yang dipunyai BP-2 tidak mewah-mewah. Deret (array) hanya
>bisa tiga 'dimensi'. "Record" tidak disertakan, apalagi "pointer".
>Di atas disebutkan "string dinamik". Yang saya inginkan dari jenis
>data ini adalah suatu penyangga (buffer) yang bisa diisi teks sepenuh-
>penuhnya (sampai "heap"-nya sisa satu byte). Dengan mempunyai
>jenis data yang cukup besar, operasi-operasi yang menyangkut teks (men-
>cari kata tertentu, menghitung jumlah kata, "sorting", menghilangkan
>kata tertentu) bisa dilakukan didalam memori; semuanya ini dilakukan
>oleh pustaka fungsi/prosedur yang disimpan di dalam "modul".
>
>"Record" mungkin bisa ditambahkan, hanya saja saya belum menemukan
>kata Indonesianya.
>
>Sekian dulu, mengenai pencabangan dan pengulangan akan diketengahkan di
>posting yang lain.
>
>
>Oki
>Okidz@ccs.northeastern.edu

Dari posting di atas, saya melihat bahwa struktur bahasa BP-2 yang
diusulkan oleh Oki adalah gabungan antara C dengan Pascal. Kedua bahasa ini
mempunyai karakteristik jauh berbeda dalam hal penyocokan jenis variabel
(type checking), bahasa Pascal menganut 'strict type checking' sedangkan
bahasa C tidak. Model mana yang akan dipakai oleh BP-2?


Hans.
-- 
|_|_|_|_|  _|_|_ |_|_|_|_| Hans Dulimarta [dulimart@cps.msu.edu]
|_|_|_|  _|_| |_|_ |_|_|_| Pattern Recognition & Image Processing Laboratory
|_|_|  _|_|_ X _|_|_ |_|_| Department of Computer Science
|_|   |_|_|_|_|_|_|_|  |_| Michigan State University
Newsgroups: alt.culture.indonesia