- Notasi (Notation) adalah alat penting yang membantu proses berpikir, dan memainkan peran inti baik dalam matematika maupun bahasa pemrograman
- Bahasa APL dikembangkan sebagai upaya menggabungkan keunggulan notasi matematis dengan eksekutabilitas dan universalitas bahasa pemrograman
- Ciri notasi yang baik mencakup keringkasan, kejelasan, daya sugesti, subordinasi detail, dan kemungkinan pembuktian formal
- Berbagai struktur matematis (polinom, transformasi, graf, dll.) dapat diekspresikan dan ditransformasikan secara efisien dengan APL
- Pengenalan dan pembelajaran notasi harus berlangsung secara alami dalam konteks, dan struktur serta sifat serbagunanya juga penting
Notasi sebagai alat berpikir
- Di bidang sains seperti kimia dan botani, tata nama yang sistematis juga mendorong perkembangan disiplin ilmu
- George Boole menekankan bahwa bahasa itu sendiri adalah sarana berpikir
- Notasi matematis adalah contoh representatif dari bahasa yang mendukung pemikiran, mengurangi beban berpikir dan meningkatkan daya pikir
- A.N. Whitehead dan Charles Babbage menekankan pentingnya notasi matematika
Potensi bahasa pemrograman sebagai alat berpikir
- Bahasa pemrograman memiliki keunggulan berupa universalitas dan kejelasan
- Komputer memungkinkan eksperimen ide dan eksperimen berpikir yang jelas
- Namun, sebagian besar bahasa pemrograman berperan lebih lemah sebagai alat berpikir dibanding notasi matematis
- APL dirancang sebagai notasi yang mendukung pemikiran dengan mengutamakan kejernihan dan ketelitian
Karakteristik utama notasi yang baik
- Kemudahan mengekspresikan masalah: harus dapat dengan mudah menyatakan struktur yang langsung diturunkan dari masalah
- Daya sugesti: bentuk yang diekspresikan harus menyiratkan masalah yang serupa atau perluasannya
- Subordinasi detail: menyediakan struktur yang membantu berpikir dengan menyederhanakan detail yang kompleks
- Keringkasan: harus memungkinkan ekspresi yang luas dengan simbol dan aturan seminimal mungkin
- Kemungkinan pembuktian formal: notasi harus memudahkan pembuktian formal dan penalaran deduktif
Pengantar teknik notasi dasar APL
- Struktur berbasis array seperti vektor dan matriks digunakan secara alami
- Fungsi dan operator diterapkan otomatis ke vektor/matriks per elemen
- Komposisi fungsi diekspresikan dengan operator seperti reduksi(
/), scan(\), dan inner product(.)
- Simbol dasar seperti
⍳, ⌽, ⍴, +, ×, * memungkinkan penyusunan ekspresi yang kaya
- Semua fungsi mengikuti aturan prioritas kanan sehingga ekspresi dapat ditulis secara alami tanpa tanda kurung
Contoh pemecahan masalah dan dorongan terhadap pemikiran
- Barisan matematis seperti bilangan segitiga dan faktorial dapat dinyatakan dengan rumus sederhana
- Representasi polinom serta operasi seperti perkalian dan diferensiasi ditangani secara ringkas dengan aturan yang konsisten
- Teori graf (pohon, transitive closure, spanning tree) juga dapat dinyatakan dengan jelas melalui operasi array
- Dapat diperluas ke berbagai bidang seperti permutasi, aljabar Boolean, dan konversi sistem bilangan (faktorisasi prima)
Pembuktian formal dan pemikiran terstruktur
- Karena semua operasi dan ekspresi dinyatakan dalam bentuk yang dapat dieksekusi dengan jelas, verifikasi otomatis melalui komputer dimungkinkan
- Disajikan berbagai contoh pembuktian formal melalui induksi matematika, pencarian menyeluruh, dan enumerasi identitas
- Pembuktian formal atas identity pembagian dari reduksi dan scan serta asosiativitas dan distributivitas operasi inner product
- Pembuktian langsung untuk fungsi simetris Newton, perkalian polinom, dan rumus diferensiasi
Perbandingan APL dan notasi matematika tradisional
- APL menyediakan definisi fungsi yang jelas, operasi array yang konsisten, dan sistem simbol yang kaya
- Untuk semua operasi, digunakan aturan eksekusi dari kanan ke kiri alih-alih aturan prioritas
- Mengurangi kerumitan penggunaan simbol matematika dan mendukung manipulasi formal (formal manipulation)
- Sintaksnya ringkas dan aturannya konsisten, sehingga menguntungkan bagi pemula maupun pengguna mahir
Cara memperkenalkan dan mempelajari notasi
- Ditekankan pendekatan memperkenalkan notasi yang diperlukan secara alami dalam konteks, tanpa "kuliah bahasa" terpisah
- Simbol baru dipelajari secara intuitif di dalam situasi masalah yang konkret
- Yang penting bukan tingkat kesulitan notasinya sendiri, melainkan mengenali berbagai kemungkinan dan daya perluasan yang disiratkan notasi tersebut
Kemungkinan perluasan dan usulan untuk APL
- Diusulkan perluasan fungsi termasuk penanganan bilangan kompleks
- Perlu standardisasi fungsi elemen unik (unique elements) dan ringkasan (summary)
- Dengan pengenalan operator yang lebih digeneralisasi, topik tambahan seperti kalkulus vektor dapat didukung
- Bertujuan meningkatkan kejelasan desain bahasa dan kemampuan penalaran
Keseimbangan antara efisiensi dan kejelasan
- Disarankan untuk terlebih dahulu mendefinisikan notasi yang jelas dan dapat dianalisis, lalu meningkatkan efisiensi melalui optimisasi
- Penjernihan algoritme juga membantu optimisasi lanjutan dan optimisasi kompiler
- Ekspresi dasar yang ditulis dalam APL berpotensi berkontribusi baik pada eksplorasi akademis maupun penerapan industri
1 komentar
Opini Hacker News
Notasi bukan sekadar mengganti satu representasi dengan representasi lain, tetapi memiliki makna yang lebih dalam
Kemunduran APL disebabkan oleh kemunculan Lotus 123 dan MS Excel
Hipotesis Sapir-Whorf menyiratkan bahwa bahasa dapat membatasi pemikiran
Sedang mengembangkan proyek yang menggunakan APL
Menyesal tidak sempat menyelesaikan aplikasi catatan Freeform
Ini adalah kuliah pertama yang menggunakan ungkapan "alat untuk berpikir"
Sebagai materi terkait, disebutkan "Notation as a Tool of Thought" karya Iverson