Dasar-dasar sebagian besar bahasa prosedural hampir sama.
Mereka menawarkan:
- Jenis data skalar: biasanya boolean, integer, float, dan karakter
- Tipe data majemuk: array (string adalah huruf khusus) dan struktur
- Konstruksi kode dasar: aritmatika di atas skalar, akses array / struktur, penugasan
- Struktur kontrol sederhana: if-then, if-then-else, sementara, untuk loop
- Paket blok kode: fungsi, prosedur dengan parameter
- Lingkup: area di mana pengidentifikasi memiliki makna tertentu
Jika Anda memahami hal ini, Anda memiliki pemahaman yang baik tentang 90% bahasa di planet ini. Apa yang membuat bahasa ini sedikit lebih sulit untuk dipahami adalah variasi sintaksis aneh yang digunakan orang untuk mengatakan hal-hal dasar yang sama. Beberapa menggunakan notasi singkat yang melibatkan tanda baca aneh (APL menjadi ekstrem). Beberapa menggunakan banyak kata kunci (COBOL menjadi perwakilan yang sangat baik). Itu tidak masalah. Yang penting adalah jika bahasa itu cukup lengkap dengan sendirinya untuk melakukan tugas-tugas kompleks tanpa menyebabkan Anda merobek rambut Anda. (Cobalah mengkode beberapa peretasan string serius dalam skrip shell Window DOS: Turing mampu tetapi sangat buruk dalam segala hal).
Bahasa prosedural yang lebih menarik menawarkan
- Lingkup bersarang atau leksikal, ruang nama
- Pointer memungkinkan satu entitas untuk merujuk ke entitas lain, dengan alokasi penyimpanan dinamis
- Pengemasan kode terkait: paket, objek dengan metode, sifat
- Kontrol yang lebih canggih: rekursi, kelanjutan, penutupan
- Operator khusus: operasi string dan array, fungsi matematika
Meskipun secara teknis bukan properti dari langauge, tetapi properti ekosistem di mana bahasa tersebut hidup, adalah perpustakaan yang mudah diakses atau disediakan dengan bahasa sebagai bagian dari alat pengembangan. Memiliki berbagai fasilitas perpustakaan menyederhanakan / mempercepat penulisan aplikasi hanya karena kita tidak perlu menemukan kembali apa yang dilakukan perpustakaan. Sementara Java dan C # secara luas dianggap sebagai bahasa yang baik di dalam dan dari diri mereka sendiri, apa yang membuatnya benar-benar bermanfaat adalah perpustakaan besar yang menyertainya, dan perpustakaan ekstensi yang mudah didapat.
Bahasa yang lebih sulit untuk dipahami adalah yang non-prosedural:
- Bahasa murni fungsional, tanpa penugasan atau efek samping
- Bahasa logika, seperti Prolog, di mana perhitungan simbolik dan penyatuan terjadi
- Bahasa pencocokan pola, di mana Anda menentukan bentuk yang cocok dengan masalah, dan sering kali tindakan dipicu oleh kecocokan
- Batasi bahasa, yang memungkinkan Anda menentukan hubungan dan secara otomatis menyelesaikan persamaan
- Bahasa deskripsi perangkat keras, di mana semuanya dijalankan secara paralel
- Bahasa khusus domain, seperti SQL, Jaring Petri Berwarna, dll.
Ada dua gaya representasional utama untuk bahasa:
- Berbasis teks, di mana entitas pengidentifikasi nama dan arus informasi dikodekan secara implisit dalam rumus yang menggunakan pengidentifikasi untuk memberi nama entitas (Java, APL, ...)
- Grafis, di mana entitas digambarkan sebagai node, dan hubungan antara entitas digambarkan sebagai busur eksplisit antara node tersebut (UML, Simulink, LabView)
Bahasa grafis sering memungkinkan sub teks Bahasa sebagai anotasi dalam node dan pada busur. Bahasa grafis yang lebih aneh secara rekursif memungkinkan grafik (dengan teks :) di node dan pada arc. Bahasa grafis yang benar-benar aneh memungkinkan grafik penjelasan menunjuk ke grafik yang diberi keterangan.
Sebagian besar bahasa ini didasarkan pada sejumlah kecil model perhitungan:
- Kalkulus lambda (dasar untuk Lisp dan semua bahasa fungsional)
- Sistem pos (atau teknik penulisan ulang string / tree / graph)
- Mesin Turing (kondisi modifikasi dan pemilihan sel memori baru)
Mengingat fokus oleh sebagian besar industri pada bahasa prosedural dan struktur kontrol yang kompleks, Anda dilayani dengan baik jika Anda mempelajari salah satu bahasa yang lebih menarik dalam kategori ini dengan baik, terutama jika itu mencakup beberapa jenis orientasi objek.
Saya sangat merekomendasikan mempelajari Skema, khususnya dari buku yang sangat indah:
Struktur dan Interpretasi Program Komputer . Ini menjelaskan semua konsep dasar ini. Jika Anda mengetahui hal ini, bahasa lain akan tampak sangat mudah kecuali untuk sintaks yang konyol.