Sebelum kita membahas tentang sejarah dan
perkembangan bahasa pemograman, tentu yang pertama kali kita perlu mengetahui
siapakah penemunya?
1. Penemu
Bahasa Pemrograman
Penemu bahasa pemrograman pertamakali adalah Konrad Zuse lahir di Berlin, 22 Juni 1910 – meninggal di Hunfeld, 18 Desember 1995 pada umur 85 tahun adalah seorang teknisi sipildan perintis komputer. Pencapaian terbesarnya adalah komputer penyempurna Turingfungsional pertama yang dikendalikan oleh program, Z3, pada tahun 1941 (program tersebut disimpan di tape kertas). Komputer Z3 buatan Konrad Zuse adalah mesin otomatis pertamayang dapat diprogram ulang dan dapat berfungsi secara bebas. Mengamati ciri-cirinya, Z3 bisa dianggap sebagai sebuah komputer. Z3 dibuat dengan 2.200 pemancar, mempunyai frekuensi waktu sebesar 5–10 Hz, dan panjang kata sebesar 22 bit. Perhitungan dengan Z3 dilakukan dalam aritmetika titik mengambang dengan biner (binary) penuh. Mesin ini diselesaikan pada 1941 (pada 12 Mei tahun tersebut, Z3 berhasil dipresentasikan kepada para ilmuwan di Berlin). Z3 yang asli dihancurkan pada tahun 1944 pada saat pengeboman Berlin oleh pihak Sekutu. Sebuah replika yang berfungsi penuh dibangun pada tahun 1960-an oleh perusahaan aslinya Zuse KG dan dipertunjukkan untuk umum yang permanen di Deutsches Museum. Pada 1998 Z3 terbukti Turing-complete. Ia menerima Werner-von-Siemens-Ringpada tahun 1964 untuk penemuan itu. Zuse juga merancang bahasa pemrograman tingkat tinggi pertama, Plankalkul, pertama kali diterbitkan pada tahun 1948, meski hanya teoretis,karena bahasa pemrograman itu tak diimplementasikan sepanjang hidupnya dan tak secaralangsung memengaruhi bahasa pemrograman awal. Bahasa pemrograman tingkat tinggi adalah sebuah bahasa pemrograman yang jika dibandingkan dengan bahasa pemrograman tingkat rendah memiliki sifat lebih mudah digunakan, lebih portabel (mudah diadaptasikan) antar-platform, dan lebih abstrak. Bahasa-bahasa semacam ini sering melakukan abstraksiterhadap beberapa operasi CPU, seperti halnya pengaksesan memori Istilah "bahasa pemrograman tingkat tinggi" tidak serta merta menjadikan bahasatersebut lebih baik dibandingkan dengan bahasa pemrograman tingkat rendah. Akan tetapi,maksud dari "tingkat tinggi" di sini merujuk kepada abstraksi yang lebih tinggi dibandingkandengan bahasa tingkat rendah terhadap bahasa mesin. Salah satu penemu ALGOL (Rutishauser) menulis: "Percobaan paling awal untuk menemukan bahasa algoritmadilakukan pada tahun 1948 oleh K. Zuse. Notasinya cukup umum, namun proposal tersebut tak pernah mencapai pertimbangan yang patut diterima." Secara umum, bahasa tingkat tinggiakan membuat pemrograman komputer yang kompleks menjadi lebih sederhana, sementarabahasa tingkat rendah cenderung untuk membuat kode yang lebih efisien. Dalam sebuah bahasa tingkat tinggi, elemen-elemen kompleks dapat dipecah ke dalam beberapa elemen yang lebih sederhana, meski masih dapat dianggap kompleks, di mana bahasa tersebut menyediakan abstraksi.
Karena alasan ini, kode-kode yang harus berjalan
dengan efisien dapat ditulis dalam bahasa pemrograman tingkat rendah, sementara
bahasa tingkat tinggi digunakan untuk mempermudah pemrograman. Di samping karya
teknik, Zuse mendirikan salah satu bisnis komputer awal padatahun 1946.
Perusahaan ini membuat Z4, yang menjadi komputer komersial kedua yang disewa
oleh ETH Zuerich pada tahun 1950. Institut Teknologi Konfederasi Zürich, dalam bahasa Jerman disebut Eidgenössische Technische Hochschule Zürich (ETH
Zürich), merupakan salah satu universitas paling terkemuka di Swiss. Lembaga
pendidikan tinggi iniberdiri tahun 1854 sebagai universitas negeri milik
pemerintah Konfederasi Swiss dan berbeda dari Universitas Zurich yang milik
pemerintah canton Zürich. Akibat Perang Dunia II, karya Zuse banyak yang tak
tercatat di Amerika Serikat dan Britania Raya, kemungkinan pengaruh pertamanya
yang terdokumentasi di perusahaan AS adalah pilihan IBM atas patennya pada
tahun 1946. Pada akhir tahun 1960-an, Zuse mengusulkan konsep Rechnender Raum
(bidang berdasar komputasi). Terdapat replika Z3, juga Z4, di Deutsches Museum,
München. Deutsches Technik museum Berlin memiliki pameran yang dipersembahkan
bagi Zuse, menampilkan 12 mesinnya, termasuk replika Z1, beberapa dokumen asli,
termasuk spesifikasi Plankalkul, dan beberapa gambar karya Zuse.
Pembagian
generasi bahasa adalahseperti berikut:
»» First-Generation
Language (1GL) adalah bahasa mesin atau level instruksi dan data, yang diberikan kepada prosesor agar dapat
bekerja. Pada komputer konvensiona terdiri dari deretan angka 0 dan 1.
»» Second-Generation Language (2GL) adalah bahasa pemrograman assembler (orang juga mengenalnya sebagai bahasa assembly). Pada bahasa perograman generasi kedua ini assembler mengubah pernyataan bahasa pemrograman ke bahasa mesin.
»» Second-Generation Language (2GL) adalah bahasa pemrograman assembler (orang juga mengenalnya sebagai bahasa assembly). Pada bahasa perograman generasi kedua ini assembler mengubah pernyataan bahasa pemrograman ke bahasa mesin.
»»
Third-Generation Language (3GL) merupakan bahasa pemrograman yang masuk dalam
generasi ketiga. Ini adalah bahasa pemrograman tingkat tinggi, seperti PL/1, C,
atau Java. »» Fourth-Generation Language (4GL) adalah bahasa pemrograman yang
didesain lebih “natural”, sehingga makin mudah digunakan.
»»Fifth-Generation
Language (5GL) adalah bahasa pemrograman yang menggunakan interface
pengembangan visual atau grafik untuk membuat bahasasumbernya, yang biasanya
di-compile dengan compiler 3GL atau 4GL.
Berikut adalah ringkasan sejarah bahasa pemrorgraman.
Sebelum 1940
Pada jaman ini terdapat bahasa pemrograman yang pertama kali muncul sebelum adanya komputer modern, artinya bahasa pemrograman lebih tua dari komputer itu sendiri. Pada awal kemunculannya, bahasa pemrograman masih dalam bentuk kode-kode bahasa mesin. Bahasa mesin merupakan bahasa yang terdiri atas kode-kode mesin dan hanya dapat diinterpretasikan langsung oleh mesin komputer. Bahasa mesin ini tergolong bahasa tingkat rendah, karena hanya berupa kode 0 dan 1 seperti disampaikan pada bagian atas.
Pada jaman ini terdapat bahasa pemrograman yang pertama kali muncul sebelum adanya komputer modern, artinya bahasa pemrograman lebih tua dari komputer itu sendiri. Pada awal kemunculannya, bahasa pemrograman masih dalam bentuk kode-kode bahasa mesin. Bahasa mesin merupakan bahasa yang terdiri atas kode-kode mesin dan hanya dapat diinterpretasikan langsung oleh mesin komputer. Bahasa mesin ini tergolong bahasa tingkat rendah, karena hanya berupa kode 0 dan 1 seperti disampaikan pada bagian atas.
Periode 1940-an
Dengan bahasa mesin ditemukan banyak kesulitan untuk pengembangan dan
perbaikan pada program yang dibuat saat itu, Tahun 1940-an komputer bertenaga
listrik dibuat, dengan kecepatan yang sangat terbatas dan kapasitas memori yang
mencukupi untuk programmer memprogram, kemudian terciptalah bahasa assembly
(Assembly language). Bahasa assembly adalah bahasa simbol dari bahasa mesin.
Setiap kode bahasa mesin memiliki simbol sendiri dalam bahasa assembly.
Misalnya Move untuk memindahkan isi data, ADD untuk penjumlahan, MUL untuk
perkalian, SUB untuk pengurangan, dan lain-lain. Penggunaan bahasa Asembly
dirasa belum sempurna karena selain sulit untuk diimplementasikan, ternyata
bahasa ini juga sulit jika sang programer ingin mengembangkan program
buatannya. Pada tahun 1948, Konrad Zuse mempublikasikan sebuah paper tentang
bahasa pemrograman miliknya yakni Plankalkül. Bagaimanapun, bahasa tersebut
tidak digunakan pada masanya dan terisolasi terhadap perkembangan bahasa
pemrograman yang lain. Beberapa bahasa pemrograman yang berkembang pada masa
itu antara lain:
• Plankalkül (Konrad Zuse) – 1943
• ENIAC coding system – 1943
• C-10 – 1949
• Plankalkül (Konrad Zuse) – 1943
• ENIAC coding system – 1943
• C-10 – 1949
Periode tahun 1950-an sampai dengan tahun 1960-an
Mulai tahun 1950 dibuatlah bahasa pemrograman modern,
yang turun-temurun dan tersebar luas hingga saat ini. Bahasa ini menggunakan
istilah atau reserved word yang dekat dengan bahasa manusia seperti READ untuk
membaca, WRITE untuk menulis dsb. Dalam perkembangannya Bahasa Tingkat Tinggi
juga terdiri dari beberapa metode pemrograman, yaitu Procedural Programing dan
Object Oriented Programing. Letak perbedaannya yaitu, jika pada procedural
programing program dijalankan dengan menggabungkan variable,
procedure-procedure yang saling keterkaitan dan berjalan berurut, sedangkan
pada OOP seluruh task dijalankan berdasarkan kedalam object.
• FORTRAN (1955), the “FORmula TRANslator”, ditemukan oleh John W. Backus dll.
• LISP, the “LISt Processor”, ditemukan oleh John McCarthy dll.
• COBOL, the COmmon Bussines Oriented Language, dibuat oleh the Short Range Commitee, dan Grace Hopper berperan sangat besar disini.
• FORTRAN (1955), the “FORmula TRANslator”, ditemukan oleh John W. Backus dll.
• LISP, the “LISt Processor”, ditemukan oleh John McCarthy dll.
• COBOL, the COmmon Bussines Oriented Language, dibuat oleh the Short Range Commitee, dan Grace Hopper berperan sangat besar disini.
Overview:
·
• Regional Assembly Language – 1951
·
• Autocode – 1952
·
• FORTRAN – 1954
·
• FLOW-MATIC – 1955
·
• COMTRAN – 1957
·
• LISP – 1958
·
• ALGOL – 1958
·
• COBOL – 1959
·
• APL – 1962
·
• SIMULA – 1962
·
• BASIC – 1964
·
• PL/I -1964
Periode 1967-1978: Menetapkan Paradigma Fundamental
Periode diantara tahun 60-an sampai dengan 70-an membawa pengaruh yang besar dalam perkembangan bahasa pemrograman.
Periode diantara tahun 60-an sampai dengan 70-an membawa pengaruh yang besar dalam perkembangan bahasa pemrograman.
Kebanyakan dari pola bahasa pemrograman yang utama yang saat ini
banyak digunakan:
• Simula, ditemukan pada akhir 60-an oleh Nygaard dan Dahl sebagai superset dari Algol 60, merupakan bahasa pemrograman pertama yang didesain untuk mendukun pemrograman berorientasi object.
• C, sebuah tahapan awal dari sistem bahsa pemrograman, yang dikembangkan oleh Dennis Ritchie dan Ken Thompson di Bell Labs antara tahun 1969 dan 1973.
• Smalltalk (pertengahan tahun 70-an) menyajikan desain ground-up yang lengkap dari sebuah bahasa yang berorientasi objek.
• Prolog, didesain pada tahun 1977 oleh Colmerauer, Roussel, and Kowalski, merupakan bahasa pemrograman logika yang pertama.
• ML membangun sebuah sistem polimorfis (ditemukan oleh Robin Miller pada tahun 1973) diatas sebuah Lisp, yang merintis bahasa pemrograman fungsional bertipe statis.
Beberapa bahasa pemrograman yang berkembang dalam periode ini termasuk:
• Simula, ditemukan pada akhir 60-an oleh Nygaard dan Dahl sebagai superset dari Algol 60, merupakan bahasa pemrograman pertama yang didesain untuk mendukun pemrograman berorientasi object.
• C, sebuah tahapan awal dari sistem bahsa pemrograman, yang dikembangkan oleh Dennis Ritchie dan Ken Thompson di Bell Labs antara tahun 1969 dan 1973.
• Smalltalk (pertengahan tahun 70-an) menyajikan desain ground-up yang lengkap dari sebuah bahasa yang berorientasi objek.
• Prolog, didesain pada tahun 1977 oleh Colmerauer, Roussel, and Kowalski, merupakan bahasa pemrograman logika yang pertama.
• ML membangun sebuah sistem polimorfis (ditemukan oleh Robin Miller pada tahun 1973) diatas sebuah Lisp, yang merintis bahasa pemrograman fungsional bertipe statis.
Beberapa bahasa pemrograman yang berkembang dalam periode ini termasuk:
·
• Pascal – 1970
·
• Forth – 1970
·
• C – 1970
·
• Smaltalk – 1972
·
• Prolog – 1972
·
• ML – 1973
·
• SQL – 1978
Periode 1980-an: konsolidasi, modul, performa
1980s adalah tahun dari konsolidasi relatif. C++ dikombinasikan dengan sistem programming dan berorientasi obyek. Pemerintah Amerika Serikat menstandardisasi Ada, sebuah sistem pemrograman yang bertujuan untuk digunakan para kontraktor untuk bertahan. Di Jepang dan di tempat lain, penjumlahan luas yang telah di selidiki disebut” generasi ke lima” bahasa-bahasa yang menyatukan logika pemrograman konstruksi. Masyarakat bahasa fungsional gerak ke standarisasi ML dan Cedal. Dibandingkan dengan menemukan paradigma-paradigma baru, semua pergerakan ini menekuni gagasan-gagasan yang ditemukan di dalam dekade sebelumnya.
1980s adalah tahun dari konsolidasi relatif. C++ dikombinasikan dengan sistem programming dan berorientasi obyek. Pemerintah Amerika Serikat menstandardisasi Ada, sebuah sistem pemrograman yang bertujuan untuk digunakan para kontraktor untuk bertahan. Di Jepang dan di tempat lain, penjumlahan luas yang telah di selidiki disebut” generasi ke lima” bahasa-bahasa yang menyatukan logika pemrograman konstruksi. Masyarakat bahasa fungsional gerak ke standarisasi ML dan Cedal. Dibandingkan dengan menemukan paradigma-paradigma baru, semua pergerakan ini menekuni gagasan-gagasan yang ditemukan di dalam dekade sebelumnya.
However, one important new trend in language design
was an increased focus on programming for large-scale systems through the use
of modules, or large-scale organizational units of code. Modula, Ada, and ML
all developed notable module systems in the 1980s. Module systems were often
wedded to generic programming constructs generics being, in essence,
parameterized modules (see also parametric polymorphism).
Bagaimanapun, satu kecenderungan baru di dalam disain
bahasa adalah satu fokus yang ditingkatkan di pemrograman untuk sistem
besar-besaran melalui penggunaan dari modul, atau kesatuan organisasi
besar-besaran dari kode. Modula, Ada, dan ML semua sistem modul terkemuka yang
dikembangkan pada 1980-an.
Beberapa bahasa pemrograman yang berkembang dalam
periode ini termasuk:
·
• Ada – 1983
·
• C++ – 1983
·
• Eiffel – 1985
·
• Perl – 1987
·
• FL (Backus) – 1989
Periode 1990-an: Visual
Pada periode ini bahasa selain berorientasi objek juga sudah dikembangkan berbasi Visual sehingga semakin mudah untuk membuat program aplikasi, diawali oleh Python dan Microsoft Visual Basic 1 pada tahun 1991, Delphi yang dikembangkan dari Pascal for windows akhirnya pada tahun 1997 Visual Basic 5 diluncurkan dengan kemudahan koneksi ke database, OO Cobol sudah ditemukan dalam versi windows. Bagi kebanyakan programmer database tidak dapat dipungkiri bahwa era 1990an merupakan era yang paling produktif semenjak bahasa pemrogrammar diciptakan.
Beberapa bahasa pemrograman yang berkembang dalam periode ini termasuk
Pada periode ini bahasa selain berorientasi objek juga sudah dikembangkan berbasi Visual sehingga semakin mudah untuk membuat program aplikasi, diawali oleh Python dan Microsoft Visual Basic 1 pada tahun 1991, Delphi yang dikembangkan dari Pascal for windows akhirnya pada tahun 1997 Visual Basic 5 diluncurkan dengan kemudahan koneksi ke database, OO Cobol sudah ditemukan dalam versi windows. Bagi kebanyakan programmer database tidak dapat dipungkiri bahwa era 1990an merupakan era yang paling produktif semenjak bahasa pemrogrammar diciptakan.
Beberapa bahasa pemrograman yang berkembang dalam periode ini termasuk
·
• Haskel – 1990
·
• Python – 1991
·
• Java – 1991
·
• Ruby – 1993
·
• OO Cobol
·
• Lua – 1993
·
• ANSI Common Lisp – 1994
·
• JavaScript – 1995
·
• PHP – 1995
·
• C# – 2000
·
• JavaFX Scrip, Live Script,
·
• Visual Basic
Periode 2000an hingga tulisan ini dibuat
Pada saat ini ada kecenderungan para vendor bahasa pemrograman untuk menggiring programmer hanya dengan mengggunakan produk mereka untuk membuat program meski kita sadari bahwa sulit rasanya untuk membuat program yang tangguh hanya dengan satu bahasa pemrograman, hal ini tentunya dilakukan dengan tujuan kelangsungan usaha mereka, namun terlepas dari semua itu terdapat dua konsepsi besar dalam periode ini dimana kemudahan berbasis visual sudah mulai digiring ke basis internet dan mobile, dengan bermunculan webservice dan berbasis net dan a mobile flatform.
Pada saat ini ada kecenderungan para vendor bahasa pemrograman untuk menggiring programmer hanya dengan mengggunakan produk mereka untuk membuat program meski kita sadari bahwa sulit rasanya untuk membuat program yang tangguh hanya dengan satu bahasa pemrograman, hal ini tentunya dilakukan dengan tujuan kelangsungan usaha mereka, namun terlepas dari semua itu terdapat dua konsepsi besar dalam periode ini dimana kemudahan berbasis visual sudah mulai digiring ke basis internet dan mobile, dengan bermunculan webservice dan berbasis net dan a mobile flatform.
Konsep pertama yang dicermati adalah konsepsi Microsoft dimana
dengan Visual Net akan menyediakan berbagai bahasa pemrograman seperti VB Net ,
VC++ Net, ASP NET yang di compile dengan berbagai bahasa akan tetapi berjalan
pada satu sistem operasi yakni windows. (Compile any program run one system)
Konsepsi Kedua, Merupakan konsep yang terbalik dari konsep pertama
yakni apa yang ditawarkan Sun Microsystem melalui produknya Java, J2ME, JDK,
yakni dicompile dengan satu bahasa pemrograman (java) dan berjalan dibanyak
sistem operasi. (Compile one program running any system)
Selain itu periode ini juga merupakan jamannya CMS
(Content Manajemen System), lompatan pengembangan PHP Script begitu cepat,
dimana untuk membuat website atau portal telah tersedia banyak template, Banyak
modul-modul yang siap pakai sehingga programmer atau webmaster tidak perlu lagi
mempelajari semua script html dan bahasanya, tinggal merangkai modul yang
tersedia sehingga dalam beberapa hari saja sebuah web sudah dapat dibuat. Apa
yang ditawarkan Mambo, PhkNuke dan Jomla saat ini sangat memudahkan para
desainer web.
Beberapa bahasa pemrograman yang berkembang dalam periode ini termasuk
• Tcl/Tk,
• O’Caml,
• Ruby,
• Phyton 3.1,
• Java 6 JDK, JED, Java Beans, J2ME
• Microsoft Visual Net (VB Net, C++ Net, ASP NET) 2008
• Java Scrip Template oleh Mambo, PhpNuke, Jomla
• Tcl/Tk,
• O’Caml,
• Ruby,
• Phyton 3.1,
• Java 6 JDK, JED, Java Beans, J2ME
• Microsoft Visual Net (VB Net, C++ Net, ASP NET) 2008
• Java Scrip Template oleh Mambo, PhpNuke, Jomla
Sejarah
pandangan pertama tiga generasi
Istilah “generasi pertama” dan “generasi kedua” bahasa
pemrograman tidak digunakan sebelum coining dari istilah “generasi ketiga.”
Bahkan, tak satupun dari ketiga istilah yang disebutkan dalam kompendium awal
bahasa pemrograman. Pengenalan generasi ketiga dari teknologi komputer
bertepatan dengan penciptaan generasi baru bahasa pemrograman. Pemasaran untuk
pergeseran generasi dalam mesin tidak berkorelasi dengan beberapa perubahan
penting dalam apa yang disebut tingkat tinggi bahasa pemrograman, dibahas di
bawah, memberikan konten teknis untuk perbedaan kedua / ketiga-generasi
antara bahasa pemrograman tingkat tinggi juga, dan mengubah nama
refleks bahasa assembler sebagai generasi pertama.
Generasi Kedua
Artikel utama: Generasi kedua bahasa pemrograman
Bahasa pemrograman generasi kedua, awalnya hanya
disebut bahasa pemrograman tingkat tinggi , diciptakan untuk
menyederhanakan beban pemrograman dengan membuat ekspresi yang lebih seperti
modus normal ekspresi pemikiran yang digunakan oleh programmer. Mereka
diperkenalkan pada akhir 1950-an, dengan FORTRAN mencerminkan kebutuhan programmer ilmiah, ALGOLmencerminkan upaya untuk menghasilkan tampilan standar Eropa / Amerika.
Masalah yang paling penting yang dihadapi oleh para
pengembang dari tingkat kedua bahasa adalah pelanggan meyakinkan bahwa kode
yang dihasilkan oleh para penyusun dilakukan dengan baik-cukup untuk
membenarkan meninggalkan pemrograman assembler. Dalam pandangan skeptisisme
luas tentang kemungkinan memproduksi program efisien dengan sistem pemrograman
otomatis dan fakta bahwa inefisiensi tidak bisa lagi disembunyikan, para
pengembang yakin bahwa jenis sistem yang mereka ada dalam pikiran akan banyak
digunakan hanya jika mereka bisa menunjukkan bahwa hal itu akan menghasilkan
program hampir seefisien yang tangan kode dan melakukannya pada hampir setiap
pekerjaan. Compiler FORTRAN dipandang sebagai tour de force-dalam produksi
berkualitas tinggi kode, bahkan termasuk “… a Monte Carlo simulasi
pelaksanaannya … sehingga dapat meminimalkan transfer barang antara toko dan
indeks register.”
Generasi ketiga
Artikel utama: generasi ketiga bahasa pemrograman
Pengenalan generasi ketiga dari teknologi komputer
bertepatan dengan penciptaan generasi baru bahasa pemrograman. [1] Fitur penting dari generasi
ketiga bahasa adalah hardware-kemerdekaan mereka, ekspresi yaitu algoritma
dengan cara yang independen dari karakteristik mesin yang algoritma akan
berjalan.
Beberapa atau semua dari sejumlah perkembangan lain
yang terjadi pada saat yang sama dimasukkan dalam 3GLs.
Interpretasi diperkenalkan. 3GLs Beberapa disusun , proses analog dengan penciptaan dieksekusi kode mesin lengkap dari
kode assembly, perbedaan adalah bahwa dalam bahasa tingkat tinggi tidak ada
lagi hubungan, satu-ke-satu, atau bahkan linier antara petunjuk source code
kode mesin instruksi dan. Compiler dapat menargetkan hardware yang berbeda
dengan memproduksi terjemahan yang berbeda dari perintah kode sumber yang sama.
Penafsir, di sisi lain, pada dasarnya menjalankan
instruksi kode sumber itu sendiri – jika seseorang menemukan sebuah “add”
instruksi, ia melakukan tambahan itu sendiri, daripada keluaran instruksi
tambahan akan dieksekusi kemudian. Mesin-kemerdekaan dicapai dengan memiliki
interpreter yang berbeda dalam kode mesin dari platform yang ditargetkan, yaitu
penafsir itu sendiri umumnya harus dikompilasi. Interpretasi bukanlah “muka”
linear, tetapi model alternatif untuk kompilasi, yang terus ada di samping, dan
lainnya, baru-baru ini dikembangkan, hibrida. Lispadalah bahasa interprepreted awal.
Para 3GLs awal, seperti Fortran dan Cobol , adalah spaghetti kode , yaitu mereka memiliki gaya yang sama
dari aliran kontrol sebagai assembler dan kode mesin , membuat penggunaan berat darigoto pernyataan. pemrograman terstruktur [2] diperkenalkan model di mana
program itu dilihat sebagai hirarki blok bersarang daripada daftar linear instruksi. Misalnya, programmer
terstruktur adalah untuk memahami sebuah loop sebagai blok kode yang diulang,
bukan perintah begitu banyak diikuti oleh melompat mundur atau goto.
Pemrograman terstruktur kurang tentangkekuasaan – dalam arti satu
tingkat yang lebih tinggi commannd ekspansi ke berbagai tingkat rendah yang –
dari keselamatan. Pemrogram berikut ini jauh kurang rentan
untuk membuat kesalahan. Pembagian kode ke blok, subrutin dan modul lainnya
dengan antarmuka jelas-didefinisikan juga memiliki manfaat produktivitas dalam
memungkinkan programmer banyak untuk bekerja pada satu proyek. Setelah
diperkenalkan (dalam ALGOL bahasa), pemrograman terstruktur dimasukkan ke dalam hampir semua
bahasa, dan dipasang dengan bahasa yang awalnya tidak memilikinya, seperti Fortran , dll
Struktur Blok juga dikaitkan dengan depresiasi variabel global , sumber kesalahan yang sama dengan goto . Sebaliknya, bahasa terstruktur
diperkenalkan scoping leksikal dan manajemen penyimpanan otomatis dengan stack.
Fitur lain yang tingkat tinggi adalah pengembangan
dari sistem tipe yang melampaui jenis data kode mesin yang mendasari,
seperti string , array dan catatan .
Dimana 3GLs awal adalah tujuan khusus, (misalnya ilmu
pengetahuan atau perdagangan) upaya telah dilakukan untuk menciptakan tujuan
umum bahasa, seperti C dan Pascal . Sementara ini menikmati sukses besar, domain bahasa tertentu tidak menghilang.
Sebuah
karakterisasi alternatif dari tiga generasi pertama
Karena setidaknya 1979, banyak penulis telah
menggunakan karakterisasi yang berbeda dari generasi bahasa pemrograman.
Ø
Generasi Pertama
Dalam kategorisasi ini, generasi pertama bahasa pemrograman mengacu pada angka kode mesin , yaitu petunjuk numerik secara langsung sesuai
dengan petunjuk perangkat keras individu.
Awalnya, tidak ada penerjemah yang digunakan
untuk mengkompilasi atau merakit sumber assembler untuk menghasilkan kode mesin
numerik. Generasi pertama instruksi pemrograman yang masuk melalui switch panel
depan dari sistem komputer.
Manfaat utama dari pemrograman dalam kode mesin adalah
bahwa kode pengguna menulis dapat berjalan sangat cepat dan efisien, karena
secara langsung dieksekusi oleh CPU . Namun, kode mesin adalah jauh lebih sulit
untuk belajar dari yang lebih tinggi bahasa pemrograman generasi, dan itu jauh
lebih sulit untuk mengedit jika terjadi kesalahan. Selain itu, jika instruksi
perlu ditambahkan ke dalam memori di lokasi tertentu, maka semua instruksi
setelah titik penyisipan perlu dipindahkan ke membuat ruang dalam memori untuk
menampung instruksi baru. Melakukannya pada panel depan dengan switch bisa
sangat sulit.
Ø
Generasi Kedua
Generasi kedua bahasa pemrograman mengacu pada (simbolis) bahasa assembly . Istilah ini diciptakan untuk memberikan
perbedaan dari sebelumnya bahasa kode mesin dan tingkat yang lebih
tinggi bahasa pemrograman generasi ketiga (3GL) seperti Fortran , COBOL dan Algol . Generasi kedua bahasa pemrograman memiliki sifat sebagai berikut:
·
Kode assembly simbolis dapat dibaca dan ditulis oleh seorang programmer.
Untuk menjalankan pada komputer harus dikonversi ke dalam bentuk mesin yang
dapat dibaca, proses yang disebut perakitan.
·
Bahasa adalah satu-ke-satu korespondensi dengan instruksi mesin dari
keluarga prosesor tertentu dan lingkungan.
Majelis bahasa kadang-kadang digunakan dalam kernel
dan driver perangkat (meskipun Cumumnya digunakan untuk ini di kernel modern), tetapi
lebih sering menemukan penggunaan dalam pengolahan yang sangat intensif seperti
game, video editing, grafis manipulasi / render.
Salah satu metode untuk membuat kode seperti ini
dengan memungkinkan compiler untuk menghasilkan mesin-dioptimalkan perakitan
versi bahasa fungsi tertentu. Sumber perakitan kemudian tangan-tuned,
memperoleh wawasan baik brute-force dari algoritma mesin mengoptimalkan dan
kemampuan intuitif optimizer manusia.
Ø
Generasi ketiga
Generasi ketiga bahasa pemrograman (3GL) awalnya disebut semua bahasa
pemrograman pada tingkat yang lebih tinggi dari perakitan. Sedangkan instruksi
individu dari bahasa generasi kedua dalam satu-ke-satu korespondensi dengan
instruksi mesin individu (yaitu mereka yang dekat dengan domain mesin), bahasa
generasi ketiga bertujuan untuk menjadi lebih dekat ke domain manusia.
Instruksi beroperasi pada tingkat, lebih tinggi abstrak, lebih dekat dengan
cara berpikir manusia, dan setiap instruksi individu dapat diterjemahkan ke
dalam sejumlah (besar kemungkinan) mesin-tingkat instruksi. Bahasa generasi
ketiga dimaksudkan untuk lebih mudah digunakan daripada bahasa generasi kedua.
Dalam rangka untuk menjalankan pada komputer yang sebenarnya, kode yang ditulis
dalam bahasa generasi ketiga harus dikompilasi baik secara langsung ke dalam
kode mesin, atau ke perakitan, dan kemudian dirakit. Kode yang ditulis dalam
bahasa generasi ketiga umumnya dapat dikompilasi untuk dijalankan pada komputer
yang berbeda menggunakan berbagai arsitektur perangkat keras.
Pertama kali diperkenalkan pada akhir 1950-an, FORTRAN , ALGOL dan COBOL adalah contoh awal dari bahasa generasi ketiga.
Bahasa generasi ketiga cenderung baik seluruhnya (atau
hampir seluruhnya) independen dari hardware, seperti untuk keperluan umum
bahasa seperti Pascal , Java , FORTRAN , dll, meskipun beberapa telah ditargetkan pada prosesor tertentu
atau arsitektur keluarga prosesor, seperti , misalnya PL / M yang ditargetkan pada prosesor Intel, atau bahkan C , yang
sebagian auto-increment dan auto-decrement idiom seperti * (c + +) berasal dari
hardware PDP-11 ini yang mendukung auto-increment dan auto-decrement mode
pengalamatan tidak langsung, dan di manaC pertama
kali dikembangkan.
Kebanyakan “modern” bahasa ( BASIC , C , C + + , C # , Pascal , Ada , dan Jawa ) juga generasi ketiga bahasa.
Dukungan 3GLs Banyak terstruktur pemrograman .
Ø
Generasi Kemudian
Artikel utama: generasi keempat bahasa pemrograman dan kelima-generasi bahasa pemrograman
Awalnya, bahasa pemrograman semua pada tingkat yang
lebih tinggi dari perakitan yang disebut “generasi ketiga”, tetapi kemudian,
istilah “generasi keempat” diperkenalkan untuk mencoba membedakan (kemudian)
bahasa deklaratif baru (seperti Prolog dan domain- spesifik bahasa) yang
diklaim beroperasi pada tingkat yang lebih tinggi, dan dalam domain bahkan
lebih dekat ke pengguna (misalnya pada tingkat bahasa alami) daripada asli,
bahasa tingkat tinggi seperti imperatif Pascal , C , Algol , Fortran , BASIC , dan lain-lain
“Generasi” klasifikasi bahasa tingkat tinggi (generasi
ke-3 dan kemudian) tidak pernah sepenuhnya tepat dan kemudian mungkin
ditinggalkan, dengan klasifikasi yang lebih tepat mendapatkan penggunaan umum,
seperti object-oriented , deklaratif dan fungsional. C memunculkan C + + dan kemudian Java dan C # , Lisp untuk CLOS , Ada ke Ada 2.012 , dan bahkan COBOL untuk COBOL2002 , dan bahasa baru telah muncul dalam “generasi” juga.
Tidak ada komentar:
Posting Komentar