Karena sering diklasifikasikan di tingkat sekolah / perguruan tinggi, bahasa pemrograman populer (C #, Java, C ++) adalah semua bahasa generasi ke-3 (dengan tingkat abstraksi yang lebih tinggi dari bagian fisik mesin). Selain itu, bahasa rakitan diklasifikasikan sebagai bahasa ke-2 dan bahasa mesin sebagai bahasa generasi pertama.
Awalnya saya berpikir SQL harus dianggap bahasa generasi ke-4 karena lebih abstrak dan jauh dari perulangan dan lebih deskriptif.
Baru saja saya tahu ada bahasa generasi ke-4 dan ke-5, tetapi apa dasar dari setiap bahasa pemrograman atau teknologi untuk dikategorikan sebagai bahasa generasi ke-4 atau ke-5?
Juga, apakah ada bahasa generasi 6 atau 7 juga?
Jawaban:
Gambaran umum generasi sederhana: sebuah bahasa adalah generasi ke sembilan ketika itu adalah blok bangunan
Karenanya, bahkan bahasa-bahasa baru seperti Google Go atau Apple Swift masih merupakan generasi ke-3. Regex adalah bahasa pencocokan teks, yang menjadikannya bahasa generasi ke-4 awal. Dengan definisi ini, generasi ke-4 sangat selaras dengan DSL. Namun, perhatikan bahwa bahasa seperti C ++ dapat memiliki jenis dunia nyata seperti
Length
danWeight
selainfloat
dandouble
, yang membuatnya menjadi hibrida generasi ke-3 / ke-4.Bahasa generasi ke-5 tidak ada secara praktis, karena mereka umumnya membutuhkan tingkat AI yang tidak pernah terwujud. Fakta bahwa kita programmer masih dibutuhkan adalah tepat karena non-programmer tidak bisa memberi tahu komputer dengan presisi yang tepat apa yang mereka inginkan.
sumber
DONALD problem
pada blog itu menyoroti seberapa jauh kita masih jauh darisudo make me a sandwich
, dan mengkhawatirkan berapa banyak kemajuan yang telah kita buat selama 50 tahun terakhir."Bahasa generasi ke-N" adalah kata kunci. Ini adalah istilah pemasaran. Tidak ada definisi yang diterima secara universal tentang apa yang secara tepat mendefinisikan "generasi ke-n" untuk n> 2. Beberapa orang mengkategorikan bahasa "scripting" seperti Perl atau Python sebagai 4GL karena mereka jauh lebih tinggi daripada C, sementara yang lain berpikir mendefinisikan karakteristik 4GL adalah bahwa mereka spesifik domain, misalnya SQL. Beberapa nitwits bahkan berpikir bahwa Java (bahasa pertengahan 90-an yang penuh dengan orientasi objek dan pengumpulan dan refleksi sampah) termasuk dalam kategori "3GL" yang sama dengan Fortran (dari 50-an) dan C (dari 70-an).
Kategorisasi yang sangat membingungkan seperti "bahasa generasi ke-4" tidak berguna. Anda dapat melihatnya di buku teks lama, atau mendengarnya dari orang-orang yang memulai pemrograman pada tahun 80-an, tetapi tag seperti "4GL" tidak berharga tanpa penjelasan yang menyertai apa yang sebenarnya dimaksud oleh penulis.
Karena tidak ada yang langsung mengerti apa yang Anda maksud dengan "4GL", Anda tidak boleh menggunakan kategorisasi tersebut. Alih-alih, gunakan istilah tertentu untuk mengomunikasikan dengan tepat apa yang Anda maksud. Misalnya semua NASM, LLVM IR, dan Jasmin adalah bahasa assembly, tetapi dua VM target terakhir, dan yang terakhir juga merupakan bahasa pemrograman berorientasi objek. Apakah semua 2GL itu? SQL adalah sebagian deklaratif, bahasa khusus domain untuk kueri basis data dari tahun 80-an. Dan TeX adalah bahasa khusus domain untuk pengaturan huruf dari tahun 70-an. Apakah keduanya 4GL karena keduanya kurang lebih spesifik domain?
sumber
(I + 7) * 3
. Namun, tidak ada konsensus tentang di mana kategori 3GL berakhir, dan apa arti 4GL dan 5GL secara khusus.