Λ-2D: Eksplorasi Menggambar sebagai Bahasa Pemrograman
(media.mit.edu)Proyek λ-2D: mengeksplorasi gambar sebagai bahasa pemrograman
-
Ikhtisar: Proyek λ-2D adalah penelitian yang mengeksplorasi bahasa baru yang memungkinkan pemrograman melalui gambar. Dirancang berdasarkan ide-ide kalkulus lambda agar penulisan kode dapat dilakukan lewat gambar.
-
Bahasa pemrograman nonverbal: Ada bahasa pemrograman nonverbal seperti Befunge dan asciidots yang berbasis ASCII, serta Piet yang berbasis gambar. Terinspirasi oleh bahasa-bahasa tersebut, dikembangkanlah bahasa baru.
-
Tujuan:
- Memanfaatkan keunggulan menulis program dengan gambar untuk memasukkan kemampuan yang tidak mungkin diwujudkan dalam bahasa berbasis teks.
- Menyesuaikan jumlah perintah agar tidak terlalu sedikit atau terlalu banyak, sehingga lebih mudah digunakan.
- Memungkinkan pembuatan program yang menarik secara visual, sehingga dapat dinikmati seperti karya seni.
-
Kalkulus lambda: Kalkulus lambda hanya memiliki dua perintah, yaitu penerapan fungsi dan definisi fungsi. Simbol yang sesuai untuk masing-masing perintah pun dikembangkan.
-
Aliran data: Dirancang agar data dapat mengalir melalui garis yang menghubungkan simbol. Simbol tambahan juga diperkenalkan untuk meningkatkan kemudahan penggunaan.
-
Frame dan elemen GUI: Area tertentu pada kanvas dapat ditetapkan sebagai frame agar data dapat dimanfaatkan. Elemen GUI seperti slider juga ditambahkan agar program bisa dikendalikan secara dinamis.
-
Perangkat lunak editor: Dikembangkan editor agar pengguna dapat menggambar program secara digital. Dengan simbol 5x5 piksel, elemen dapat ditempatkan dengan mudah di kanvas berbasis grid.
-
Pemecahan masalah output: Karena sifat bahasa fungsional murni, perintah "output" sulit diimplementasikan. Untuk mengatasinya, konsep ini didefinisikan ulang dengan cara meneruskan kanvas ke fungsi lalu menerima kembali kanvas yang telah diubah.
-
Pengembangan parser: Dikembangkan parser yang mengubah program λ-2D menjadi JavaScript. Hasilnya kompleks, tetapi berfungsi.
-
Pengalaman pemrograman: Pengalaman memrogram dengan bahasa baru ini mirip Minecraft atau Factorio, tetapi tetap memiliki nilai sebagai penelitian.
-
Visualisasi dan suara: Dieksplorasi kemungkinan untuk memvisualisasikan eksekusi program dan mendengarkan program yang sedang berjalan seperti musik.
-
Rencana ke depan: Ada rencana untuk meningkatkan λ-2D dan merancang bahasa pemrograman baru yang dapat diintegrasikan ke dalam sistem komputasi melalui gambar.
-
Demo online: Versi beta λ-2D dapat dicoba secara online, dan kode sumber parser serta editornya akan segera dirilis di GitHub.
1 komentar
Komentar Hacker News
Membahas konsep yang mirip dengan BitGrid tetapi berbeda, sambil membayangkan bit yang berbaris secara paralel sebagai penyederhanaan pamungkas dari FPGA. Ide ini mungkin berguna atau mungkin tidak untuk memberikan Petaflops kepada publik. Energi yang dikonsumsi DFF pada ASIC itu penting.
Pekerjaan sebagai automation project engineer bisa terasa menyenangkan atau familier. Function block diagram terdiri dari function block yang dihubungkan dengan kabel, dan urutan kerja ditentukan oleh urutan blok. Blok dapat berupa fungsi bawaan mesin atau komposit.
Bahasa ini saat ini Turing-complete tetapi sangat sulit digunakan, sehingga melanggar aturan desain #2. Berhenti di tahap 1 pada Lambda Diagrams.
Hal seperti ini pernah dilakukan di Labview, tetapi sulit untuk dikembangkan lebih jauh. Juga pernah dilakukan di perangkat lunak seperti Max, tetapi cepat menjadi rumit.
Pernah tertarik pada spesifikasi formal grafis untuk Petri Nets. Ada pemikiran bahwa jika ada representasi grafis, para insinyur akan lebih banyak menggunakan metode formal, tetapi ketika diperlihatkan Petri Nets mereka kehilangan minat.
Ada pendapat bahwa ranah bahasa pemrograman nonverbal masih belum banyak dieksplorasi.
Mengingatkan pada "Wireworld" dari tahun 1987, dan pernah melihat penghitung 8-bit diimplementasikan dalam Wireworld.
Dalam hal paradigma pemrograman, ini mirip dengan Funciton.