Programming Language Summary Session 1

Programming Language Summary Session 1


Alasan Mempelajari Programming Language Concept (PLC)


  • Meningkatkan kemampuan untuk mengekspresikan ide-ide
  • Meningkatkan kemampuan memilih bahasa yang cocok
  • Meningkatkan kemampuan untuk mempelajari bahasa baru
  • Pemahaman lebih baik tentang pentingnya implementasi
  • Penggunaan lebih baik dari bahasa yang sudah dipelajari
  • Peeningkatan komputasi secara keseluruhan

Programming Domains


  • Aplikasi scientific
  • Aplikasi bisnis
  • Kecerdasan buatan (Artificial Intelligence)
  • System programming
  • Web software

Kriteria Evaluasi Suatu Bahasa


  • Readibility : kemudahan dalam membaca maupun mengerti
  • Writability : kemudahan untuk menggunakannya membuat suatu program
  • Reliability : kesesuaian untuk spesifikasi
  • Cost : total harga akhir

Pengaruh terhadap Desain Bahasa


  • Arsitektur Komputer

Kebanyakan bahasa paling populer dalam 50 tahun terakhir ini telah didesain  dari arsitektur komputer umum, dikenal dengan arsitektur von Neumann. Bahasa-bahasa tersebut juga dikenal sebagai bahasa imperative.

Di komputer von Neumann,

  • Program dan data disimpan di memori
  • Memori terpisah dari CPU
  • Data dan instruksi disalurkan dari memori ke CPU

Fitur utama dari bahasa imperative:

  • Variable, yang memodelkan sel memori
  • Pernyataan assignment, yang didasari dari operasi penyaluran
  • Bentuk iterative dari repetition (perulangan), yang merupakan cara paling efeisien untuk mengimplementasikan repetition di arsitektur ini

Metodologi Desain Program


Perkembangan metodologi software baru menyebabkan paradigma programming baru dan dengan bertambah luas, bahasa pemrograman baru. Berikut beberapa pengaruhnya:

  • Di 1950-an dan awal 1960-an : Aplikasi sederhana; khawatir dengan efesiensi mesin
  • Di akhir 1960-an : Efesiensi manusia menjadi penting; readability, control structure yang lebih baik
    – Structured programming
    – Desain top-down dan perbaikan step-wise
  • Di akhir 1970-an : Process-oriented menjadi data-oriented
    – Abstraksi data
  • Di pertengahan 1980-an : Object-oriented programing
    – Abstraksi data + inheritance + polymorphism

Kategori Bahasa


  • Imperative
  • Functional
  • Logic
  • Markup/programming hybrid

Metode Implementasi


  • Compilation
    – Program diterjemahkan menjadi bahasa mesin, termasuk system JIT
    – Kegunaan : Aplikasi komersial besar
  • Pure Interpretation
    – Program ditafsirkan oleh program lain yang dikenal dengan interpreter(pentafsir)
    – Kegunaan: Program kecil atau ketika tidak memerhatikan efesiensi
  • Hybrid Implementation System
    – Gabungan antara compiler dan pure interpreter
    – Kegunaan: Sistem kecil dan sedang ketika efesiensi bukan menjadi prioritas utama

Kompilasi


  • Menterjemahkan program berlevel-tinggi (source language) menjadi kode mesin (machine language)
  • Terjemah lambat, eksekusi cepat
  • Berikut fase-fase dalam proses kompilasi:
    – Analisis leksikal: mengubah karakter-karakter di source program menjadi unit leksikal
    – Analisis sintaksis: mengubah unit leksikal menjadi parse tree yang mewakili struktur sintaktik dari program
    – Analisis semantic: menghasilkan kode tingkat menengah
    – Generasi kode: kode mesin dihasilkan

Pure Interpretation


  • Tidak ada terjemahan
  • Implementasi program lebih mudah (run-time error dapat dengan mudah dan secara langsung ditampilkan)
  • Eksekusi lambat (10 sampai 100 kali lebih lambat dari program yang telah di-compile)
  • Sering membutuhkan ruang yang lebih banyak
  • Sulit ditemukan di bahasa tradisional level-tinggi
  • Kembali penting dengan adanya bahasa Web Scripting (JavaScript, PHP, dll)

Hybrid Implementation System


  • Gabungan antara compiler dan pure interpreter
  • Program bahasa berlevel-tinggi diterjemahkan menjadi suatu bahasa tingkat menengah yang mempermudah interpretasi
  • Lebih cepat dari pure interpretation

Sumber : Concept of Programming Languages Tenth Edition / Robert W. Sebesta (Chapter 1) & Introduction / Binus Powerpoint Presentation


This entry was posted in Computer Science, Programming Language Concept and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *