Untuk menghasilkan taksonomi apa pun, Anda harus terlebih dahulu bertanya pada diri sendiri beberapa pertanyaan:
- Apakah objek yang akan saya masukkan ke dalam hubungan apa pun didefinisikan dengan benar?
- Jika demikian, apakah mereka benar-benar ada?
- Apakah saya membatasi diri hanya pada jenis hubungan tertentu di antara objek, atau adakah persyaratan yang ditetapkan agar sistem hanya menggunakan hubungan yang sah?
Biasanya, ketika seseorang mendengar pertanyaan seperti yang Anda ajukan, jawaban yang diharapkan membuat beberapa asumsi. Sebagai contoh, adalah wajar untuk mengasumsikan bahwa karena semua ini adalah bahasa, mereka harus membentuk hierarki di bawah konsep bahasa yang lebih umum, atau mereka membagi ruang semua bahasa, atau mereka adalah himpunan bagian dari satu sama lain.
Bahasa pemrograman
Sayangnya, tidak satu pun di atas yang tampaknya benar. Mungkin hanya bahasa pemrograman yang memiliki definisi paling disetujui. Bahasa pemrograman adalah bahasa yang menyandikan program. Pengkodean berarti bahwa suatu kata dalam bahasa dapat diartikan sebagai suatu program (suatu urutan tindakan). Bahasa pemrograman komputer adalah bagian dari ini. Contoh bahasa pemrograman non-komputer: daftar belanjaan, ditafsirkan sebagai petunjuk bagi pembeli di supermarket, DNA ditafsirkan dengan menyalin peptida, rekaman musik analog yang berfungsi sebagai program untuk perekam kaset.
Bahasa pemrograman komputer dengan demikian yang memprogram komputer.
Bahasa scripting
Tidak terdefinisi dengan baik. Ini terbuka untuk interpretasi apa arti istilah ini. Secara historis, akan terlihat bahwa bahasa pemrograman yang tidak memiliki kompiler untuk menghasilkan kode mesin telah dipanggil dengan cara ini. Dengan standar saat ini, ini akan menempatkan setiap bahasa pemrograman populer dan Assemblers ke dalam kategori ini. Bahkan yang disebut bahasa tingkat rendah seperti C memerlukan runtime dengan prosedur yang sudah ada sebelumnya, sehingga binari yang diperoleh dengan mengkompilasi program C tidak sepenuhnya kode mesin, tetapi juga memanggil ke runtime setiap saat dan kemudian.
Bahasa markup
Tidak terdefinisi dengan baik. Setiap kali istilah ini digunakan, maksudnya adalah untuk menggambarkan bahasa pemrograman dengan leksikon yang sangat terbatas, terutama digunakan untuk menghasilkan gambar visual atau audio. Mungkin sulit untuk melihat XML sebagai pemrograman sesuatu, tetapi jika Anda melihat Man atau markup TexInfo, Anda akan melihat bahwa karakter "spesial" sebenarnya adalah instruksi dari penerjemah.
Dimungkinkan juga untuk memberikan interpretasi "pemrograman" untuk bahasa XML, sesuatu yang bisa seperti ini:
< := put interpreter in the reading node mode
! := if reading node, start CData/Comment mode
else if not in read text mode, signal error
-- := if in start CData/Comment mode, start comment
else if in comment, put in end comment mode
else if in end comment mode, signal error
...
Intinya: pembagian ini mulai hari ini, sepertinya tidak terlalu berarti, itu hanya dapat memberi Anda beberapa intuisi tentang jenis bahasa apa yang Anda hadapi, tetapi itu tidak akan memberi Anda definisi yang ketat.