Bahasa
pemrograman C++ didesain untuk mendukung tipe-tipe yang menurut Bjarne Stroustrup
secara fundamental bagus dan berguna. Apakah tipe-tipe tersebut berorientasi
objek, dan semakna dengan itu, adalah irrelevant atau merupakan suatu minor
concern:
1.) Abstraction
Kemampuan untuk
merepresentasikan objects secara langsung dalam program dan menyembunyikan
incidental detail di balik well-defined interfaces.
2.) Encapsulation
Kemampuan untuk
menyediakan jaminan bahwa abstraction hanya digunakan sesuai dengan
spesifikasinya saja - hal ini sangat penting untuk menjaga abstraction dari
corruption.
3.) Polymorphism
Kemampuan untuk
menyediakan interface yang sama kepada objects dengan implementasi berbeda -
hal ini sangat penting untuk mempersingkat code menggunakan abstraction.
4.) Inheritance
Kemampuan untuk membuat
abstraksi baru dari yang sudah ada, hal ini merupakan salah satu cara terbaik
untuk mengembangkan abstraction yang baik.
5.) Genericity
Kemampuan untuk
melakukan parametrize types dan function oleh types dan values, hal ini penting
untuk mengekspresikan type-safe containers dan tool yang berguna untuk
mengekspresikan algoritma umum.
6.) Coexistence
Coexistence dengan bahasa dan sistem
lain - hal ini penting untuk melakukan functioning pada real-world execution
environments7.) Run-time Compactness dan Speed
Run-time compactness dan speed penting untuk classical system programming
8.) Static Type Safety
Static type safety, bagian integral dari bahasa pemrograman keluarga C++, dan penting untuk menjamin properties dari suatu design, dan untuk menyediakan run-time dan space efficiency
Fasilitas-fasilitas
dan general properties di atas dapat didukung dalam beberapa cara alternatif.
Sebagai contoh, suatu bahasa pemrograman mungkin mendukung suatu fasilitas dalam
core language bahasa tersebut, dimana bahasa lain mendukung fasilitas tersebut
di dalam library.
Kebutuhan
akan coexistence penting bagi setiap bahasa, sehingga dapat menjadi
general-purpose. Untuk menjadi general purpose, suatu bahasa harus bersifat
unpredictable dan berubah secara konstan, menyesuaikan dengan program fragments
yang tertulis dalam bahsa lain.
Agar suatu bahasa benar-benar menjadi general purpose, suatu bahasa harus
memiliki fasilitas yang memungkinkan pembagian data dengan program fragments
yang tertulis dalam bahasa lain (meminta code fragments tertulis dalam bahasa
lain, dan memperoleh code tersebut).
Static type
safety merupakan bagian penting dari sudut pandang Stroustrup, baik dari segi
desain dan implementasi. Hal ini disebabkan karena adanya jaminan dan disiplin
desain yang sangat berguna bagi banyak orang yang bekerja pada area
aplikasi-aplikasi yang cakupannya luas.
Ide dasar
pada C++ sebenarnya merupakan ide dasar bagi banyak bahasa pemrograman:
center box;
c.
Merepresentasikan konsep-konsep dan hubungan-hubungan antara konsep tersebut
secara langsung dan terjangkau.
Representasi konsep secara langsung adalah suatu uraian baru, dan mungkin suatu generalisasi
ide yang terkait dengan data abstraction dan information hiding. Merepresentasikan
hubungan hirarki merupakan kunci trandisional pada object-oriented programming.
Bagaimanapun, terdapat hubungan yang tidak bersifat hirarki, namun dapat
direpresentasikan secara langsung dalam program.
Sumber:
Stroustrup, Bjarne. Why C++ is not just an Object-Oriented Programming Language. AT&T Bell Laboratories (online), diakses pada tanggal 14 Juni 2014 dari http://www.stroustrup.com/oopsla.pdf



No comments:
Post a Comment