mengenal bahasa pemprograman smalltalk -...

11

Click here to load reader

Upload: lamhuong

Post on 04-May-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Mengenal Bahasa Pemprograman Smalltalk

Muhamad Burhanudin

[email protected]

Abstrak

Smalltalk adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh

Xerox PARC. Ide dasar Smalltalk meliputi: Semua adalah objek, Objek bisa saling

berkomunikasi melalui messages atau berita dan semua tersedia untuk dimodifikasi.

Versi lain dari bahasa ini adalah smalltalk 76 dan smalltalk 80. Refleksi pertama

terutama fitur bahasa ditafsirkan seperti Smalltalk dan Lisp. Fakta bahwa pernyataan

ditafsirkan berarti bahwa program memiliki akses ke informasi yang dibuat karena

mereka diurai dan bisa bahkan sering memodifikasi struktur mereka sendiri.

Kata Kunci: Smalltalk

Pendahuluan

Sebagai seorang programmer bahasa smalltalk harus dapat dikuasai untuk menambah

wawasan agar menjadi programmer yang handal. Smalltalk adalah sistem struktural

reflektif yang strukturnya didefinisikan oleh Smalltalk-80. Kelas-kelas dan metode yang

mendefinisikan sistem itu sendiri adalah obyek. Karena kelas itu sendiri objek, mereka

dapat pertanyaan seperti bertanya "metode apa yang Anda menerapkan?" atau "apa

bidang/slot/instance variabel anda mendefinisikan?". Jadi obyek dengan mudah dapat

diperiksa, disalin, serial dan seterusnya dengan kode generik yang berlaku untuk objek

apapun dalam sistem. IBM memiliki 'akhir life'd VisualAge Smalltalk memiliki pada

akhir tahun 1990 memutuskan untuk kembali dan jawaban itu, seperti tahun 2006,

didukung oleh instansi, Inc yang telah berganti nama menjadi produk VA Smalltalk dan

Page 2: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

baru dirilis beberapa versi. Pelaksanaan menciptakan smalltalk memiliki komunitas

aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli, dan baru-baru ini

telah digunakan untuk menyediakan lingkungan etos pada proyek OLPC, sebuah tool

untuk mengembangkan aplikasi kolaboratif Croquet Proyek, dan aplikasi dunia maya

terbuka Cobalt. GNU Smalltalk adalah implementasi perangkat lunak bebas turunan

smalltalk-80 dari proyek GNU. Smalltalk adalah sebuah MIT baru dan bersih

berlisensi. Smalltalk saat ini, adalah meningkatnya penggunaan dua kerangka web,

Seaside dan AIDA / Web, untuk menyederhanakan pembangunan aplikasi web yang

rumit. Seaside telah melihat minat pasar yang cukup besar dengan Cincom, batu

permata, dan instantiations menggabungkan dan memperluas.

Pembahasan

Smalltalk adalah object-oriented, dinamis diketik, reflektif pemrograman bahasa.

Smalltalk diciptakan sebagai bahasa untuk mendukung "dunia baru" komputerisasi

dicontohkan oleh "simbiosis manusia-komputer". Ini dirancang dan diciptakan sebagian

untuk pendidikan digunakan, lebih lagi untuk belajar konstruksionis, di Research

Group Learning (LRG) dari Xerox PARC oleh Alan Kay, Dan Ingalls, Adele Goldberg,

Ted Kaehler, Scott Wallace dan lain-lain selama tahun 1970.

Bahasa ini pertama kali umumnya dirilis sebagai Smalltalk-80. Bahasa Smalltalk-seperti

berada dalam melanjutkan pembangunan yang aktif, dan telah mengumpulkan

komunitas pengguna setia di sekitar mereka. ANSI Smalltalk diratifikasi pada tahun

1998 dan merupakan versi standar Smalltalk.

1. Sejarah

Smalltalk adalah produk dari penelitian yang dipimpin oleh Alan Kay di Xerox Palo

Alto Research Center (PARC), Alan Kay dirancang sebagian besar awal versi

Smalltalk, yang Dan Ingalls dilaksanakan. Versi pertama, yang dikenal sebagai

Smalltalk-71, diciptakan oleh Ingalls dia bertaruh bahwa bahasa pemrograman

Page 3: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

berdasarkan ide pesan yang lewat terinspirasi oleh Simula dapat diterapkan di "halaman

kode”. Sebuah varian kemudian benar-benar digunakan untuk pekerjaan penelitian yang

sekarang dikenal sebagai Smalltalk-72 dan mempengaruhi perkembangan dari model.

Sintaks dan pelaksanaan model yang sangat berbeda dari varian Smalltalk modern.

Setelah revisi signifikan yang membeku beberapa aspek eksekusi semantik untuk

mendapatkan kinerja (dengan mengadopsi Simula kelas seperti warisan model

eksekusi), Smalltalk-76 diciptakan.

Smalltalk-80 adalah varian bahasa pertama dibuat tersedia di luar PARC, pertama

sebagai Smalltalk-80 Versi 1, diberikan kepada sejumlah kecil perusahaan (Hewlett-

Packard, Apple Computer, Tektronix, dan Desember) dan universitas (UC Berkeley)

untuk "peer review" dan implementasi pada platform mereka. Kemudian (pada tahun

1983) implementasi ketersediaan umum, yang dikenal sebagai Smalltalk-80 Versi 2,

dirilis sebagai sebuah gambar (file yang platform-independen dengan definisi objek)

dan mesin virtual spesifikasi. ANSI Smalltalk telah menjadi referensi bahasa baku sejak

tahun 1998. Dua varian implementasi Smalltalk saat ini populer adalah keturunan dari

Smalltalk-80. Squeak adalah open source implementasi berasal dari Smalltalk-80 Versi

1 dengan cara Apple Smalltalk. Visual Works berasal dari Smalltalk-80 Versi 2 dengan

cara Smalltalk -80 2,5 dan Object Works (baik produk ParcPlace Systems, sebuah

perusahaan spin-off Xerox PARC dibentuk untuk membawa Smalltalk ke pasar).

Selama akhir 1980-an sampai pertengahan 1990-an, Smalltalk lingkungan-termasuk

dukungan, pelatihan dan add-ons yang dijual oleh dua organisasi bersaing: ParcPlace

Sistem dan Digital, keduanya berbasis California. ParcPlace Sistem cenderung berfokus

pada pasar Unix / Sun Microsystems, sementara Digital difokuskan pada PC berbasis

Intel menjalankan Microsoft Windows atau IBM OS / 2. Kedua perusahaan berjuang

untuk mengambil Smalltalk utama karena kebutuhan Smalltalk yang sub stansial

memori, kinerja run-waktu yang terbatas dan kurangnya awal didukung konektivitas ke

SQL server database relasional berbasis. Sementara tingginya harga ParcPlace Smalltalk

terbatas penetrasi pasar untuk organisasi komersial menengah dan besar, produk

Page 4: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Digitalk awalnya mencoba untuk menjangkau khalayak yang lebih luas dengan harga

yang lebih rendah. IBM awalnya mendukung produk digital, tapi kemudian memasuki

pasar dengan produk Smalltalk pada tahun 1995 disebut VisualAge / Smalltalk. Kuda-

kuda memperkenalkan Enfin saat ini pada Windows dan OS / 2. Enfin menjadi jauh

lebih populer di Eropa, seperti IBM memperkenalkan ke toko-toko IT sebelum

perkembangan mereka dari IBM Smalltalk (kemudian VisualAge). Enfin kemudian

diakuisisi oleh Cincom Sistem, dan sekarang dijual dengan nama Object Studio, dan

merupakan bagian dari Cincom Smalltalk produk suite.

Pada tahun 1995, ParcPlace dan Digital bergabung menjadi ParcPlace-Digitalk dan

kemudian namanya pada tahun 1997 sebagai Object Share, terletak di Irvine, CA.

Object Share (NASDAQ:OBJS) diperdagangkan secara publik sampai tahun 1999,

ketika delisting dan dibubarkan. Perusahaan gabungan tidak pernah berhasil

menemukan tanggapan yang efektif terhadap Java untuk posisi pasar, dan pada tahun

1997 pemiliknya sedang mencari untuk menjual bisnis. Pada tahun 1999, Seagull

Software mengakuisisi laboratorium pengembangan Object Share Java (termasuk yang

asli Smalltalk dan Visual tim pengembangan Smalltalk), dan masih memiliki

VisualSmalltalk, meskipun hak distribusi di seluruh dunia untuk produk Smalltalk tetap

dengan ObjectShare yang kemudian menjualnya kepada Cincom. Visual Works dijual

ke Cincom dan kini menjadi bagian dari Cincom Smalltalk. Cincom telah didukung

Smalltalk kuat, merilis beberapa versi baru VisualWorks dan ObjectStudio setiap tahun

sejak tahun 1999.

2. Pemrograman berorientasi objek

Seperti dalam bahasa berorientasi objek lainnya, konsep sentral dalam Smalltalk-80

(tetapi tidak dalam Smalltalk-72) adalah bahwa suatu objek . Sebuah objek selalu

merupakan contoh dari kelas . Sebagai contoh, sebuah GUI jendela kelas mungkin

menyatakan bahwa jendela memiliki sifat seperti label, posisi dan apakah jendela

terlihat atau tidak. Kelas mungkin juga menyatakan bahwa kasus mendukung operasi

Page 5: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

seperti membuka, menutup, bergerak dan bersembunyi. Setiap objek jendela tertentu

akan memiliki nilai tersendiri dari properti-properti, dan masing-masing akan mampu

untuk melakukan operasi didefinisikan oleh kelasnya. Sebuah objek Smalltalk dapat

melakukan persis tiga hal:

1. Tahan negara (referensi ke objek lain).

2. Menerima pesan dari dirinya sendiri atau obyek lain.

3. Dalam perjalanan pengolahan pesan, mengirim pesan untuk dirinya sendiri atau

obyek lain.

Alan Kay telah berkomentar bahwa meskipun perhatian yang diberikan kepada objek,

pesan adalah konsep yang paling penting dalam Smalltalk: "Ide besar adalah 'pesan' -

itulah inti Smalltalk / Squeak adalah semua tentang (dan itu adalah sesuatu yang tidak

pernah cukup diselesaikan dalam fase Xerox PARC kami)”. Di Smalltalk, nilai-nilai

primitif seperti integer, boolean dan karakter benda, dalam arti bahwa mereka adalah

contoh dari kelas yang sesuai, dan operasi pada mereka dipanggil dengan mengirimkan

pesan. Seorang pemrogram dapat mengubah atau memperpanjang (melalui sub

classing ) kelas yang mengimplementasikan nilai-nilai primitif, sehingga perilaku baru

dapat didefinisikan untuk kasus, misalnya untuk menerapkan struktur baru-atau kontrol

bahkan sehingga perilaku mereka yang ada akan berubah. Fakta ini diringkas dalam

frase umum terdengar "Dalam Smalltalk segala sesuatu adalah obyek", yang mungkin

lebih akurat dinyatakan sebagai "semua nilai adalah objek", sebagai variabel tidak.

Karena semua nilai adalah objek, kelas sendiri juga obyek. Setiap kelas adalah turunan

dari metaclass kelas itu.Metaclasses pada gilirannya juga obyek, dan semua contoh

kelas yang disebut Metaclass. Kode blok juga obyek.

3. Sintaks

Smalltalk-80 sintaks agak minimalis, berdasarkan hanya segelintir deklarasi dan kata-

kata reserved. Bahkan, hanya enam "kata kunci" yang disediakan di Smalltalk : benar ,

palsu , nihil , dan this Context . Ini benar-benar disebut pseudo-variabel , identifier

Page 6: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

yang mengikuti aturan untuk identifier variabel tetapi menunjukkan binding bahwa

programmer tidak dapat berubah. Daya Smalltalk berasal dari perlakuan terhadap objek.

Dalam dokumen ini, kami telah sebagian besar menghindari masalah sintaks dengan

menggunakan ekspresi ketat kurung yang diperlukan. Ketika hal ini mengarah ke kode

yang sulit untuk dibaca karena kepadatan kurung, pengetahuan tentang sintaks

Smalltalk dapat membiarkan Anda menyederhanakan ekspresi. Presentasi berikut

menyajikan tata bahasa beberapa unsur terkait pada suatu waktu. Kami menggunakan

gaya EBNF tata bahasa. Bentuknya:

[...]

berarti bahwa " ... "dapat terjadi nol atau satu kali.

[...] *

berarti nol atau lebih;

[...] +

berarti satu atau lebih.

... | ... [| ...] *

berarti bahwa salah satu varian harus dipilih. Karakter dalam tanda kutip ganda

mengacu pada karakter literal. Sebagian besar elemen dapat dipisahkan dengan spasi; di

mana hal ini tidak sah, unsur disajikan tanpa spasi di antara mereka.

metode: "!" id ["kelas"] "methodsFor:" "" "" string ["!" metode]

Metode diperkenalkan dengan terlebih dahulu penamaan kelas (elemen id), menentukan

"kelas" jika Anda menambahkan metode kelas bukan metode instan, dan mengirim

argumen string ke methodsFor: pesan. Setiap metode diakhiri dengan "!"; dua poni

berturut-turut (dengan ruang di tengah) menandakan akhir dari metode baru.

Metode: Pesan [pragma] [temps] exprs

pesan: id | binsel id | [keysel id] +

pragma: "<" keymsg ">"

temps: "|" [id] * "|"

Page 7: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Definisi metode dimulai dengan semacam template. Pesan untuk ditangani ditentukan

dengan nama pesan terbilang dan pengenal di tempat argumen. Khusus jenis definisi

adalah pragma tersebut; belum tercakup dalam tutorial ini dan menyediakan cara untuk

menandai sebuah metode khusus serta antarmuka untuk yang mendasari mesin virtual

Smalltalk. temps adalah deklarasi variabel lokal. Akhirnya, exprs (segera dibahas)

adalah kode aktual untuk menerapkan metode ini.

Unit: id | literal | blok | arrayconstructor | "(" expr ")"

unaryexpr: Unit [id] +

utama: unit | unaryexpr

Ini adalah "blok bangunan" dari ekspresi Smalltalk. Unit A merupakan nilai Smalltalk

tunggal, dengan prioritas tertinggi sintaksis. Sebuah unaryexpr hanyalah sebuah unit

yang menerima sejumlah pesan unary. Sebuah unaryexpr mempunyai prioritas tertinggi

berikutnya. Sebuah primer hanyalah sebuah nama kiri-sisi nyaman untuk salah satu di

atas.

exprs: ["." expr] * [["^"] expr]

expr: [id ": ="] * expr2

expr2: primer | msgexpr [";" cascade] *

Sebuah urutan ekspresi yang dipisahkan oleh titik dan dapat berakhir dengan nilai yang

dikembalikan ( ^ ). Ada dapat tugas utama; tidak seperti C, tugas hanya berlaku untuk

nama variabel sederhana. Sebuah ekspresi adalah baik primer (dengan prioritas

tertinggi) atau pesan yang lebih kompleks. cascade tidak berlaku untuk konstruksi

utama, karena mereka terlalu sederhana untuk meminta konstruk. Karena semua

konstruk utama adalah unary, Anda hanya dapat menambahkan pesan lebih unary:

1234 printNl printNl printNl

msgexpr: unaryexpr | binexpr | keyexpr

Sebuah pesan yang kompleks adalah salah satu pesan unary (yang kita sudah dibahas),

pesan biner ( + , - , dan sebagainya), atau pesan kunci ( pada: , new:, ... ) Unary

Page 8: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

mempunyai prioritas tertinggi, diikuti oleh pesan biner, dan kata kunci memiliki

prioritas terendah. Memeriksa dua versi dari pesan berikut. Yang kedua telah telah

kurung ditambahkan untuk menunjukkan didahulukan default.

MyVar: 2 + 3 put: 4

mybool ifTrue: [^ 2/4 roundup]

(Myvar pada: (2 + 3) menempatkan: (4))

(Mybool ifTrue: ([^ (2 / (4 roundup))]))

cascade: id | binmsg | keymsg

Sebuah kaskade digunakan untuk mengarahkan pesan lebih lanjut untuk objek yang

sama yang terakhir digunakan. Ketiga jenis pesan (id adalah bagaimana Anda mengirim

pesan unary) sehingga dapat dikirim.

binexpr: binmsg primer [binmsg] *

binmsg: binsel primer

binsel: binchar [binchar]

Sebuah pesan biner dikirim ke obyek, yang utama telah diidentifikasi. Setiap pesan

biner adalah pemilih biner, dibangun dari satu atau dua karakter, dan argumen yang juga

disediakan oleh primer.

1 + 2 - 3/4

yang mem-parsing sebagai:

(((1 + 2) - 3) / 4)

keyexpr: keyexpr2 keymsg

keyexpr2: binexpr | primer

keymsg: [keysel keyw2] +

keysel: id ":"

Page 9: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Ekspresi kata kunci yang mirip ekspresi biner, kecuali bahwa pemilih terdiri dari

pengidentifikasi dengan usus ditambahkan. Dimana argumen untuk fungsi biner hanya

dapat dari sekolah dasar, argumen untuk kata kunci dapat menjadi ekspresi biner atau

yang utama. Hal ini karena kata kunci memiliki prioritas terendah.

block: "[" [[":" id] * "|"] [temps] exprs "]"

Sebuah blok kode adalah tanda kurung di sekitar koleksi ekspresi Smalltalk. Terkemuka

": id" bagian adalah untuk blok argumen. Perhatikan bahwa adalah mungkin untuk satu

blok untuk memiliki variabel sementara sendiri.

arrayconstructor: "{" exprs "}"

Tidak tercakup dalam tutorial ini, sintaks ini memungkinkan untuk membuat array yang

nilai-nilainya tidak literal, tetapi bukan dievaluasi pada saat run-time.Bandingkan # (ab)

, yang menghasilkan sebuah Array dari dua simbol # a dan # b , dengan {a. b + c} yang

menghasilkan sebuah Array yang dua elemen adalah isi dari variabel a dan hasil dari

penjumlahan c untuk b .

literal: Nomor | String | charconst | symconst | arrayconst | mengikat | eval

arrayconst: "#" array | "#" bytearray

bytearray: "[" [jumlah] * "]"

array: "(" [literal | berbagai | bytearray | arraysym |] * ")"

Nomor: [[menggali] + "r"] ["-"] [alphanum] + ["." [alphanum] +] [exp ["-"] [menggali]

+].

String: "'" [Char] * "'"

charconst: "$" char

symconst: "#" simbol | "#" string

arraysym: [id | ":"] *

exp: "d" | "e" | "q" | "s"

Kami telah menunjukkan penggunaan banyak konstanta ini. Meskipun tidak dibahas

dalam tutorial ini, nomor dapat memiliki dasar yang ditentukan di depan mereka, dan

Page 10: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

mengikuti notasi ilmiah. Kita telah melihat contoh-contoh karakter string, dan konstanta

simbol. Konstanta Array cukup sederhana; mereka akan terlihat seperti:

a: = # (1 2 'Hi' $ x Hello 4 16r3F #)

Ada juga konstanta ByteArray, yang unsur-unsurnya dibatasi untuk bilangan bulat

antara 0 dan 255; mereka akan terlihat seperti:

a: = # [1 2 34 16r8F 26r3H 253]

Akhirnya, ada tiga jenis konstanta floating-point dengan berbagai presisi (yang satu

dengan e menjadi kurang tepat, diikuti oleh d dan q ), dan konstanta skala-desimal untuk

kelas khusus yang melakukan perhitungan yang tepat tetapi memotong perbandingan

dengan mengingat jumlah desimal. Misalnya, 1.23s4berarti "nilai 1,23 , dengan empat

angka desimal yang signifikan ".

mengikat: "# {" ["." id] * id "}"

Sintaks ini belum digunakan dalam tutorial, dan hasil dalam literal Association (dikenal

sebagai variabel mengikat ) terikat pada kelas yang diberi nama antara kawat gigi.

Sebagai contoh, # {} Kelas nilai sama dengan Kelas . Dot sintaks diperlukan untuk

mendukung ruang nama: # {} Smalltalk.Classadalah sama dengan Smalltalk

associationAt: # Kelas , tetapi diselesaikan pada waktu kompilasi daripada pada saat

run-time.

simbol: id | binsel | keysel [keysel] *

Simbol sebagian besar digunakan untuk mewakili nama-nama metode. Dengan

demikian, mereka dapat menahan pengidentifikasi sederhana, penyeleksi biner, dan

penyeleksi kata kunci:

# Halo

# +

# Di: menempatkan:

eval: "#" "#" "(" [temps] exprs ")"

Page 11: Mengenal Bahasa Pemprograman Smalltalk - ilmuti.orgilmuti.org/wp-content/uploads/2014/04/Muhamad_Burhanudin-Mengenal...aktif pengembang, termasuk banyak dari masyarakat Smalltalk asli,

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Sintaks ini juga belum digunakan dalam tutorial, dan hasil dalam mengevaluasi ekspresi

sewenang-wenang kompleks pada saat kompilasi, dan mengganti hasilnya: misalnya # #

(ukuran allInstances Object) adalah jumlah kasus Object diadakan di gambar di waktu

metode dikompilasi .

id: letter [surat | dig] *

binchar: "+" | "-" | "*" | "/" | "~" | "|" | "," |

"<" | ">" | "=" | "&" | "'' |"? "|" \ "|"% "

alphanum: "0" .. "9" | "A" .. "Z"

menggali: "0" .. "9"

Ini adalah kategori karakter dan bagaimana mereka digabungkan pada tingkat yang

paling dasar. binchar hanya menampilkan karakter yang dapat dikombinasikan untuk

nama pesan biner.

Penutup

Sekian penjelasan singkat mengenai bahasa pemprograman smalltalk. Semoga dapat

bermanfaat dan semoga dapat menambah wawasan bagi kita semua.

Referensi

http://www.gnu.org/software/smalltalk/manual/html_node/The-syntax.html

http://id.wikipedia.org/wiki/smalltalk

http://fourseasonnews.blogspot.com/2012/01/penjelasan-tentang-bahasa

pemrograman_7745.html

Biografi

Nama : Muhamad Burhanudin

Alamat : Jl.Ahmad Yani Kp.Ciawi-Pisangan Jaya kab.Tangerang

Hobby : Bermain Game Online