Keempat: Bahasa Pemrograman Aneh. Inilah Mengapa Anda Mungkin Akan Menyukainya.

Penyingkapan: Dukungan Anda membantu menjaga situs tetap berjalan! Kami mendapatkan biaya referensi untuk beberapa layanan yang kami rekomendasikan pada halaman ini.

Keempat adalah bahasa yang tidak biasa. Ini terutama merupakan juru bahasa, dan memiliki antarmuka baris perintah sehingga dapat digunakan secara real time. Tetapi juga memiliki kemampuan untuk mengambil set kode dan kompilasi. Jadi itu sesuatu yang hibrida.

Karena itu, Forth biasanya digunakan pada perangkat keras yang tidak memiliki sistem operasi tradisional. Ini juga banyak digunakan untuk mengendalikan mesin, dan telah digunakan dalam eksplorasi ruang angkasa – bahkan pada Philae, wahana yang mendarat di komet 67P / Churyumov-Gerasimenko.

Sejarah

Keempat dikembangkan oleh Charles Moore mulai tahun 1968 saat melakukan pemrograman grafis di Mohasco Industries. Tetapi implementasi Forth lengkap pertama tidak datang sampai tahun 1971, ketika Moore menciptakan sistem mandiri untuk mengendalikan teleskop 11 meter di US National Radio Astronomy Observatory (NRAO).

Versi sebelumnya dari Forth telah menarik perhatian komunitas pemrograman. Tetapi pada titik ini, ia menjadi sangat populer di komunitas astronomi. Jadi pada tahun 1973, Moore mendirikan FORTH, Inc dengan rekan-rekan NRAO-nya Elizabeth Rather dan Edward Conklin.

Perusahaan mem-porting program ke banyak sistem yang berbeda. Dan FORTH, Inc terus menjadi perusahaan yang penting, menyediakan produk-produk terkait Forth kepada orang-orang dalam bisnis, akademisi, dan pemerintah.

Tinjauan Keempat

Ada sejumlah aspek unik pada bahasa pemrograman Forth. Kami akan membahas yang paling penting di sini.

Fitur Keempat

Keempat menawarkan banyak fitur unik:

  • Pemrograman interaktif

  • Pembuatan ekstensi terkompilasi dari bahasa yang disebut “kata-kata”

  • Tumpukan dan Membalik Notasi Polandia

  • Koneksi langsung antara pengguna dan perangkat keras.

Membalikkan Notasi Polandia

Keempat melakukan perhitungan matematika menggunakan Reverse Polish Notation. Ini tergantung pada menyimpan angka dalam tumpukan.

Pertimbangkan perhitungannya: 2 + 3. Di Forth, ini akan dilakukan dengan menempatkan 2 di tumpukan, kemudian menempatkan 3 di tumpukan, dan kemudian menambahkannya. Ini akan terlihat seperti ini: 2 3 +.

Tampaknya sedikit aneh, tetapi lebih mudah bagi komputer untuk mengurai, karena ini adalah cara komputer benar-benar melakukan perhitungan. Dan begitu Anda terbiasa menggunakannya sebagai coder, itu menjadi sangat alami.

Selain itu, tidak perlu tanda kurung. Perhatikan dua contoh berikut. (Catatan: karakter backslash memulai komentar.)

2 3 + 5 * Ini sama dengan (2 + 3) * 5
2 3 5 * + Ini sama dengan 2 + 3 * 5

Dalam contoh pertama, 2 didorong pada tumpukan diikuti oleh 3. Jadi 2 adalah yang kedua di tumpukan dan 3 adalah yang pertama. Operator “+” diterapkan pada dua elemen pertama dari stack. Ini menghilangkan dua item ini dari tumpukan, dan menyisakan 5 (2 + 3) di atas tumpukan.

Lalu kami mendorong 5 ke tumpukan. Yang menempatkan 5 di posisi pertama dan kedua tumpukan. Akhirnya, kami menerapkan operator “*”, yang menghasilkan 25 (5 * 5) ditempatkan di bagian atas tumpukan.

Pada contoh kedua, kita menempatkan 2, 3, dan 5 pada tumpukan, sehingga 5 berada di posisi pertama, 3 di posisi kedua, dan 2 di posisi ketiga. Kemudian kami menerapkan operator “*” pada dua elemen teratas tumpukan (5 * 3) sehingga 15 ditempatkan di bagian atas tumpukan.

Pada titik ini, 15 berada di posisi pertama dan 2 di posisi kedua. Ketika operator + diterapkan, ia meninggalkan 17 (15 + 2) di atas tumpukan.

Contoh Program

Program berikut ini sangat sederhana, tetapi menunjukkan banyak hal yang terjadi dalam bahasa tersebut.

: OUTMATH Menghasilkan perhitungan matematis
." Kami sekarang akan menghitung: (2 + 3) * 5" CR
2 3 + 5 *
." Ini sama dengan: " . CR;

LUAR BIASA

Hal pertama yang dilakukan program ini adalah mendefinisikan fungsi bernama OUTMATH. Garis-garis yang mengikutinya adalah bagian dari fungsi naik melalui garis yang berakhir dengan titik koma. Baris pertama mencetak teks, “Kami sekarang akan menghitung: (2 + 3) * 5” dan mengikutinya dengan carriage return.

Baris berikutnya melakukan perhitungan yang kita bahas di atas, menghasilkan 25 ditempatkan di bagian atas tumpukan. Baris terakhir dari fungsi menghasilkan, “Ini sama dengan:” diikuti oleh nilai di atas tumpukan (diwakili oleh “.”) Dan carriage return.

Maka kita cukup menjalankan fungsinya. Jadi ketika program berjalan, itu menghasilkan:

Kami sekarang akan menghitung: (2 + 3) * 5
Ini sama dengan: 25

Belajar Keempat

Bagi kebanyakan programmer, ini adalah cara berpikir yang baru. Tetapi mengejutkan betapa alami rasanya begitu Anda mulai bekerja dengannya. Berikut beberapa tutorial dan buku yang akan membantu Anda menggunakan bahasa tersebut.

Tutorial Keempat

Ada banyak tutorial online. Karena Forth aneh bagi programmer non-Forth pada saat yang sama bahwa itu adalah bukti bagi pengguna saat ini, banyak tutorial mengabaikan hal-hal yang dapat membingungkan bagi pemula. Tutorial ini tidak memiliki masalah ini.

  • Easy Forth: Ebook pendek ini merupakan pengantar yang sangat baik. Satu-satunya kelemahan adalah itu tidak besar pada contoh. Jadi, lihat beberapa contoh di bawah ini.

  • A Beginner’s Guide to Forth: ini adalah pengantar lain yang bagus. Ini sedikit lebih teknis, tetapi memiliki lebih banyak contoh.

  • Dan So Forth …: ini adalah pengantar yang sangat menyeluruh untuk Forth – hampir sebagus buku.

Buku Keempat

Seringkali lebih mudah untuk mempelajari bahasa baru dengan mendapatkan buku yang dapat membawa Anda selangkah demi selangkah melalui proses. Ada banyak buku bagus tentang Forth – terutama yang berasal dari tahun 1980-an, ketika Forth benar-benar lepas landas. Ini adalah koleksi yang terbaik dan paling penting.

  • Discover Forth: Mempelajari dan Memprogram Bahasa Forth (1982) oleh Thom Hogan: ini adalah pengantar yang bagus dan ringkas untuk bahasa Forth.

  • Starting Forth: Pengantar Bahasa Forth dan Sistem Operasi untuk Pemula dan Profesional (1982) oleh Leo Brodie: ini klasik dan cara yang bagus untuk mempelajari Forth. Itu tidak dicetak tetapi salinan bekas tidak sulit ditemukan dengan sedikit uang. Ini juga online secara gratis. Pemrogram Advanced Forth mungkin ingin memeriksa yang terbaru dari Brodie, Thinking Forth.

  • Forth Lite Tutorial (2014) oleh Juergen Pintaske: ini adalah tutorial berbasis Kindle yang berfokus pada contoh.

  • Memprogram Bahasa yang Berorientasi Masalah: Forth – How the Internals Work (2014) oleh Charles Moore: ini adalah versi Kindle dari buku yang dibuat oleh pencipta Forth sejak lama. Itu masih memberikan wawasan tajam ke bahasa, tetapi bukan pilihan terbaik untuk memulai.

  • Forth Programmer’s Handbook (2007) oleh Elizabeth Rather dan Edward Conklin: ini adalah buku yang lebih maju tentang Forth oleh dua perintis Forth lainnya. Lihat juga buku Rather, Forth Application Techniques (2006).

Sumber Daya Lainnya

  • Forth Interest Group: situs ini memiliki semua jenis informasi menarik termasuk dokumen sejarah lama. Sayangnya, ia juga memiliki banyak tautan rusak. Tapi masih perlu dicoba.

  • Tautan ke Forth Programs: ini adalah koleksi program contoh nyata seperti spreadsheet dan pemecah teka-teki Sudoku.

  • Forth Google Group: ini adalah grup pengguna Forth yang sangat aktif yang bertanya dan menjawab pertanyaan.

  • Keempat Subreddit: ini bukan forum yang sangat aktif, tetapi masih ada orang yang berpengetahuan luas di dalamnya.

Implementasi Keempat

Ada banyak implementasi Forth selama bertahun-tahun. Forth Interest Group memiliki Halaman Kompor Panjang Forth. Jadi, jika Anda memiliki pengaturan PDP-11 di garasi Anda, Anda bisa mendapatkan compiler Forth untuk itu! Tetapi untuk sistem yang lebih modern, berikut adalah opsi yang lebih umum.

bigFORTH

Pada pertengahan 1980-an, Dietrich Weineck, Georg Rehfeld, dan Klaus Schleisiek mengembangkan volksFORTH untuk mesin 16-bit seperti PC IBM 8086 dan mesin 6502 Apple, Commodore, dan Atari.

Akhirnya, mereka menciptakan versi 32-bit untuk (16-bit bus) Atari ST 68000. Meskipun volksFORTH membuat kemajuan, proyek ini cukup banyak mati (meskipun kemudian dimulai kembali).

Bernd Paysan cukup tertarik dengan versi volksFORTH ini (disebut turboFORTH saat itu), sehingga ia menjadikannya basis bigFORTH..

Versi pertamanya dirilis untuk Atari ST pada tahun 1990. Pada 1995, bigFORTH telah dipindahkan ke 386, dan pada tahun berikutnya tersedia di Windows NT, OS / 2, dan Linux.

Antarmuka Grafis

Pada saat itu, Paysan mulai mengerjakan MINOS. (Secara teknis, itu adalah “MINOS,” tetapi biasanya disebut sebagai “MINOS.”)

Ini adalah antarmuka grafis untuk bigFORTH. Mungkin paling mudah untuk menganggapnya sebagai “Visual bigFORTH” seperti Visual Basic, karena kurang lebih seperti itu. Ini pertama kali dibuat untuk sistem X-Windows. Tetapi segera tersedia untuk Windows juga.

Pengembangan pada bigFORTH dan MINOS tampaknya telah berhenti sekitar tahun 2010. Namun, keduanya mudah tersedia dan cukup berguna (bigFORTH kompatibel dengan ANSI). Faktanya, MINOS sangat menyenangkan untuk dimainkan.

Sumber Daya bigFORTH

Jika Anda ingin menggunakan bigFORTH atau bahkan mengembangkannya, Anda akan memiliki semua alat yang Anda butuhkan:

  • Kode Sumber: ini adalah kode dari rilis resmi terakhir pada 22 Maret 2010, Versi 2.4.

  • Paket Debian: paket yang mudah diinstal untuk setiap distribusi Linux berbasis Debian (misalnya, Ubuntu, Mint). Ia menginstal di / usr / local / bin, dan termasuk MINOS, meskipun disebut xbigforth.

  • Windows Self-Installing Executable: sama dengan paket Debian, tetapi untuk Windows. MINOS bahkan bernama xbigforth.exe.

  • Dokumentasi (PDF): buku hampir 300 halaman ini bertindak sebagai tutorial dan referensi, ditulis oleh JL Bezemer. Sebagian besar dari itu adalah Forth generik dan diambil dari “And So Forth…”.

  • Beranda Bernd Paysan: halaman ini memiliki banyak informasi dan contoh terkait Keempat yang menarik. Yang perlu diperhatikan adalah bahasa marka berbasis Paysan Keempat.

  • repositori bigFORTH: tujuan akhir untuk semua kebutuhan bigFORTH Anda.

Gforth

Gforth adalah implementasi GNU dari Forth. Ini memiliki silsilah yang terkenal.

Proyek Gforth dimulai pada tahun 1992 oleh pencipta bigFORTH Bernd Paysan dan Anton Ertl, dengan kontribusi substansial oleh Jens Wilke.

Itu adalah kombinasi bigFORTH dan ara-FORTH yang jauh lebih tua (lihat di bawah). Tapi sejarahnya terpelintir, karena bigFORTH berasal dari volksFORTH, yang didasarkan pada fig-FORTH.

Menjadi proyek GNU, banyak pekerjaan telah dilakukan sejak itu dimulai. Itu sekarang sepenuhnya ANSI compliant dan telah mencapai semua tujuan aslinya. Versi terbaru adalah 0.7.3, dengan entri terakhir (oleh Paysan) pada 25 Februari 2013.

Dalam hal implementasi Forth gratis, Gforth adalah yang paling umum digunakan. Bagian dari itu hanya karena itu adalah bagian dari proyek GNU dan ketersediaannya. Tapi itu juga karena kuat dan cepat.

Sumber Daya Gforth

Gforth memiliki semua sumber daya yang Anda butuhkan untuk memanfaatkan apa pun yang Anda butuhkan:

  • Kode Sumber: halaman ini menyediakan kode sumber Gforth dari versi 0.2.1 hingga saat ini, 0.7.3.

  • Paket Debian: ada berbagai paket yang tersedia untuk distribusi Debian Linux. Perhatikan bahwa tergantung pada paket yang Anda pilih, Anda mungkin perlu menginstal satu atau lebih paket lain terlebih dahulu.

  • Windows Self-Installing Executable: ini adalah versi Gforth sebelumnya (0.7.0), tetapi cara cepat untuk memulai.

  • Dokumentasi (PDF): buku 250 halaman ini berlaku untuk versi 0.7.0 dari Gforth. Ini juga tersedia dalam format HTML.

  • Gforth Repository: hampir semua yang berhubungan dengan Gforth dapat ditemukan di sini.

pbForth

pbForth tampaknya tidak didukung lagi, tetapi ini merupakan implementasi Forth yang menarik sehingga layak untuk dicoba..

Seperti yang telah kita diskusikan, Forth selalu dikaitkan dengan kontrol perangkat keras. Jadi sama sekali tidak mengejutkan bahwa implementasi Forth dibuat untuk kit robotika LEGO MINDSTORMS – khususnya, RCX 16-bit yang keluar pada tahun 1998.

Tampaknya tidak pernah diperbarui untuk bekerja dengan generasi kedua, seri NXT, yang keluar pada 2006, atau MV3 saat ini, yang keluar pada 2013.

Meskipun tidak ada situs resmi untuk pbForth, masih mungkin untuk mempelajarinya dan bahkan menggunakannya. Namun, mungkin ada kurva belajar yang curam, karena tidak ada banyak informasi. Dan jelas, Anda akan memerlukan LEGO MINDSTORMS RCX (tidak sulit untuk digunakan).

NXT menggunakan prosesor yang sama sekali berbeda (dan 32-bit), jadi pbForth tentu tidak akan bekerja dengannya. Tetap saja, itu mungkin menyenangkan. Dan jika Anda sanggup melakukannya, Anda mungkin bisa porting ke kit generasi kedua dan ketiga.

Sumber Daya Utama

Informasi apa yang tersedia di internet normal pada umumnya singkat dan selalu terhubung ke pbForth Home Page, yang belum beroperasi sejak setidaknya 2010. Hanya berkat Internet Archive banyak dari ini tersedia.

  • Sejarah LEGO Robotika: meskipun bukan tentang pbForth, ini memberikan gambaran singkat tentang produk LEGO MINDSTORMS.

  • Pengantar pbForth
    (PDF): tutorial 30 halaman ini akan membantu Anda memulai dengan bahasa.

  • Kode Sumber phthorth
    : perhatikan bahwa pbForth ditulis dalam bahasa assembly dan Tcl, jadi Anda harus memiliki alat tersebut tersedia.

  • GUI Windows
    : file ini berjalan, meskipun membuatnya melakukan apa pun mungkin lebih rumit. Jika Anda ingin pbForth untuk Linux atau Mac, Anda harus menggunakan kode sumber.

  • phForth Home Page Circa 2009
    : halaman ini menyediakan tautan ke sedikit informasi menarik tentang pbForth, terutama setengah lusin skrip sampel.

Implementasi Lainnya

  • fig-FORTH: ini adalah salah satu implementasi Forth paling awal, yang dibuat oleh Forth Interest Group. Ini adalah implementasi 16-bit. Ini tersedia untuk beberapa komputer tua yang luar biasa seperti Data General Eclipse dan Alpha Micro, serta komputer berbasis 8086 dan 6502. Masalahnya adalah bahwa tidak ada file yang dapat dieksekusi – hanya kode bahasa assembly. Dan dalam banyak kasus, hanya bitmap file PDF dari kode tersebut. Kode aktual tampaknya hanya tersedia untuk 8088/8086, PDP-11, dan 6800. (The 6800 adalah prosesor 8-bit, jadi tampaknya, ada versi 8-bit dari ara-FORTH.)

  • SP-Forth: ini adalah implementasi Forth gratis untuk Windows dan Linux.

  • 4tH: ini adalah implementasi Forth yang mudah digunakan yang tersedia untuk sejumlah besar perangkat keras (termasuk Raspberry Pi), dan termasuk dokumentasi yang baik.

  • SwiftForth ™: ini adalah kompilator Forth dari perusahaan asli yang membawa Forth ke dunia. Ini adalah produk komersial, tetapi cukup murah.

Ringkasan

Keempat adalah bahasa pemrograman yang menarik dan sangat berguna. Itu terutama benar jika Anda ingin mengontrol perangkat keras. Menggunakan sumber daya di sini, Anda harus berada di jalan.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me