Selasa, 3 Disember 2013

Sejarah Generasi-generasi Bahasa Pengaturcaraan

SEJARAH KELAHIRAN BAHASA PENGATURCARAAN

Katakunci: | Generasi pertama | bahasa mesin | bahasa peringkat rendah | binari |
Keywords: | First generation | machine language | low-level language | binary |

Kita telah mengetahui bahawa bahasa pengaturcaraan adalah peralatan utama untuk mencipta sebuah perisian. Hari ini, terdapat beratus-ratus bahasa pengaturcaraan di pasaran; dan masing-masing mempertahankan bahawa merekalah yang terbaik. Walaubagaimanapun, pada 1940-an sewaktu komputer masih berada di dalam pembangunan, hanya satu bahasa sahaja yang ada iaitu - bahasa mesin. 


Konsep generasi bahasa pengaturcaraan atau dikenal sebagai 'level' atau peringkat sangat berkesinambungan dengan perjalan kecanggihan dalam teknologi komputer. Empat generasi bahasa pengaturcaraan, iaitu:

  1. bahasa mesin (machine language)
  2. bahasa pemasangan (assembly language)
  3. 3GL atau Third Generation Language/High-level language
  4. 4GL atau Fourth Generation Language/Very high level language

GENERASI PERTAMA: MACHINE LANGUAGE (BAHASA MESIN)

Pengaturcaraan bagi sistem komputer pertama adalah menggunakan bahasa mesin. Ianya merupakan bahasa pengaturcaraan berperingkat paling rendah, dan juga satu-satunya bahasa yang dapat difahami oleh komputer. Kesemua 'commands' atau arahan dan nilai data dinyatakan dengan menggunakan 1s dan 0s bersepadanan dengan 'on' dan 'off' dalam keadaan elektrikal di dalam komputer. 

Pada tahun 1950-an, setiap komputer memiliki bahasa aslinya tersendiri, dan programmer juga memiliki sistem yang primitif dalam menggabungkan nombor; untuk menunjukkan arahan seperti 'tambah' dan 'tolak'. Walaupun terdapat persamaan diantara bahasa-bahasa mesin tersebut, sesuatu komputer tidak dapat memahami program yang ditulis dalam bahasa mesin yang lain.


Di dalam bahasa mesin, kesemua arahan, lokasi memori, nombor dan karakter adalah ditunjukkan dalam 'strings' 1s dan 0s. Sungguhpun secara tipikal bahasa mesin dipaparkan dengan nombor binari di dalam program (oktal-asas 8 atau hexadecimal - asas 16), program-program ini sukar dan rumit bagi manusia untuk membacanya, menulisnya dan memperbaikinya.

Kelebihan utama bahasa mesin adalah ianya dapat dilaksnakan dengan cepat dan efisien disebabkan ia dilaksana secara langsung oleh CPU. Walaubagaimanapun, kekurangannya adalah ianya sangat sukar untuk dipelajari apatah lagi lebih sukar untuk diedit jika berlaku sebarang ralat (errors). Selain itu, jika kita ingin menambah suatu arahan baru dalam sesuatu lokasi memori, kesemua arahan selepas titik penambahan itu perlu dipindahkan ke bawah bagi memberi ruang kepada arahan baru tersebut. 

Akhir sekali, kod-kod yang ditulis dalam bahasa mesin tidak dapat dipindahkan kepada komputer lain, oleh yang demikian, ia perlu ditulis semula kerana setiap komputer adalah berlainan. 


GENERASI KEDUA: BAHASA PEMASANGAN (Assembly Language) 2GL

Generasi kedua atau 2GL adalah bahasa yang merangkumi bahasa pemasangan. Ianya merupakan bahasa 'simbolik' bagi menunjukkan arahan bahasa mesin. Bahasa-bahasa ini sangat hampir dengan bahasa mesin serta arkitektur dalaman sistem komputer. Oleh kerana itulah ianya digolongkan sebagai bahasa peringkat rendah. 

Bahasa pemasangan yang dibangunkan pada pertengahan 1950-an merupakan batu loncatan kepada dunia bahasa pengaturcaraan. Ia menggunakan kod-kod simbolik yang juga dikenal sebagai 'mnemonics codes' yang mana menggunakan singkatan mudah untuk diingati berbanding menggunakan nombor. Contoh kod-kod ini termasuklah 'ADD' untuk penambahan, 'CMP' untuk perbandingan (compare) dan MUL untuk pengkalian (multiply). 

Bahasa pemasangan terdiri daripada siri-siri pernyataan persendirian serta arahan-arahan untuk mengarahkan komputer. Asasnya, suatu pernyataan bahasa pemasangan terdiri daripada 'label', 'opcode' (kod operasi) dan 'operands'.

Label adalah digunakan untuk mengenalpasti dan menrujuk kepada arahan dalam program tersebut. Opcode merupakan mnemonics (ilmu cara menghafal/bantuan kepada memori) yang merincikan operasi-operasi yang perlu dijalankan seperti move, add, substract, atau compare. Manakala operand merincikan register (daftar) atau lokasi di dalam memori di mana data tersebut diproses. 

Walaubagaimanapun, sebagaimana bahasa mesin, bahasa pemasangan turut memiliki pernyataan dan arahan yang berlainan dari mesin yang berbeza. Boleh sekali suatu kod yang tulis tetap tidak dapat dilaksanakan walaupun dua mesin yang dikilangkan oleh jenama yang sama. Namun, tiada keraguan bahawa kecekapan dari segi masa dan penggunaan memori memang terbaik kerana ianya sangat hampir dengan bahasa mesin.


Program yang ditulis dalam bahasa pemasangan memerlukan penterjemah yang dipanggil 'translator' atau pemasang 'assembler' untuk menukar bahasa kepada bahasa mesin. Walaupun bahasa pemasang ini sangat bagus berbanding bahasa mesin, tetapi programmer masih lagi perlu memikirkan dari sudut mesin tersebut. Sehingga hari ini, bahasa pemasangan ini masih lagi digunakan oleh programmer untuk menulis bahagian-bahagian aplikasi yang memerlukan execution yang pantas seperti permainan video, namun kebanyakan mereka telah beralih menggunakan bahasa peringkat 3GL dan 4GL.

GENERASI KETIGA: BAHASA PERINGKAT TINGGI (3GL)

3GL merupakan penambahbaikan 2GL. Bahasa 2GL membawa struktur logikal kepada perisian, manakala generasi ketiga diperkenalkan untuk menjadikan bahasa-bahasa ini lebih mesra-programmer. Bahasa 3GL semakin berkembang pesat kerana peningkatan pemprosesan data pada 1960-an dan 1970-an. Dalam bahasa ini, pernyataan program tidak hampir dengan karakteristik dalaman komputer, dan atas sebab inilah ia dipanggil bahasa peringkat tinggi. 

Secara umum, suatu pernyataan yang ditulis dalam bahasa peringkat tinggi akan berkembang kepada beberapa arahan bahasa mesin. Sifat inilah yang meunujukkan perbezaan ketara dengan bahasa pemasangan yang mana satu pernyataan hanya menghasilkan satu arahan bahasa mesin. 3GL mempermudahkan pengaturcaraan, efisien, dan tidak mudah cenderung kepada kesilapan, antaranya FORTRAN dan COBOL.

Di awal 1960-an, penyebaran bahasa peringkat tinggi telah mengubah dimensi pengaturcaraan yang berlainan dari apa yang ada sebelumnya. Program telah ditulis di dalam bentuk seperti bahasa Inggeris, menjadikan ia selesa digunakan dan memudahkan programmer untuk mencari permasalahan yang diajukan oleh klien. Walaupun 3GL 'melegakan' programmer, akan tetapi ia tidak menyediakan kemudahan yang fleksible sepertimana bahasa peringkat rendah. Sungguhpun demikian, bahasa seperti C dan FORTH menggabungkan kefleksibelan (maaf, tatabahasa baru) bahasa peringkat rendah bersama kekuatan bahasa peringkat tinggi. Akan tetapi, bahasa ini sangat tidak bersesuaian dengan programmer yang sedang di tahap permulaan. 

Sebahagian bahasa peringkat tinggi direka untuk tujuan yang khusus seperti kawalan robot perinduntsrian atau grafik, sedang bahasa lainnya adalah fleksible dan serba-guna seperti BASIC, FORTRAN, PASCAL, COBOL, C++ atau Java untuk menulis kod-kod bagi aplikasinya. Sekali lagi, bahasa-bahasa ini turut memerlukan penterjemah untuk menterjemah bahasa peringkat tinggi ini kepada bahasa yang difahami komputer. Ianya biasa dikenal sebagai interpreters dan compilers

GENERASI KEEMPAT: BAHASA PERINGKAT SANGAT TINGGI (4GL)

Semakin pesat teknologi bahasa pengaturcaraan, ia semakin mudah dan menjadi sangat hampir seperti bahasa semulajadi. Akan tetapi, 4GL adalah sedikit berlainan daripada generasi sebelumnya iaitu tidak mempunyai prosedur. Apabila menulis kod dengan menggunakan bahasa prosidual, programmer hendaklah menuliskan kepada komputer bagaimana sesuatu tugas itu perlu diselesaikan. add, compare, do if the condition is true dan lain-lain semacam ini di dalam langkah-langkah yang tersusun rapi. Sebaliknya, apabila menggunakan bahasa yang tidak prosedual, programmer hanya perlu menjelaskan apa yang mereka hendak komputer lakukan tanpa menerangkan perincian bagaimana ia harus dilakukan.

Walaupun tidak ada piawaian tetap yang dapat mengelaskan 4GL secara tepat, terdapat beberapa ciri yang menjadikan bahasa pengaturcaraan itu mencapai tahap peringkat tinggi:
  • Kod arahan ditulis semacam bahasa Inggeris asli
  • Tidak prosedual, tidak berprosedual
  • Mudah untuk dikemaskini
  • Dikatakan programmer akan 10X lebih produktif dengan 4GL berbanding 3GL

GENERASI KELIMA: (ADVANCED 5GL)

Bahasa pengaturcaraan yang tergolong dalam 5GL adalah tertumpu kepada penyelesaian masalah; menggunakan 'pembatas' yang diberi kepada program berbanding progammer menulis sendiri algoritma. Kebanyakan bahasa pengaturcaraan yang berasaskan-pembatas dan logikal serta beberapa bahasa perisytiharan membentuk sebahagian daripada 5GL. 5GL banyak digunakan dalam Artificial Intelligence (AI) - Kepintaran buatan. Contohnya Programming Logic (PROLOG), Official Production System 5 (OPS5) dan Mercury. 

Suatu aspek menarik yang ada pada sebahagian 5GL adalah memiliki peralatan visual untuk membantu dalam membangunkan sebuah program. Contoh terbaik adalah Visual Basic (VB). Lebih terkehadapan, 5GL direka untuk membuatkan komputer untuk menyelesaikan masalah tanpa programmer. 

Dalam tahun 1990-an, 5GL dianggap sebagai gelombang pencetus masa hadapan, sebahagian menjangkakan ia akan menggantikan kesemua bahasa dan sistem (kecuali tahap rendah). Pada tahun 1982-93, Jepun telah melaburkan banyak di dalam kajian pembangunan 5GL, mengharapkan rangkaian komputer yang sangat besar dapat dibina. Akan tetapi, semakin besar program, semakin besar kelemahannya; dan para pengkaji mendapati untuk menghasilkan suatu algoritma yang begitu efektif adalah terlalu sukar, dan tidak dapat diautomasikan, masih mmerlukan programmer untuk mengendalikannya. 



Rujukan: Reena Thareja, Oxford Learnings

Tiada ulasan:

Catat Ulasan