Sunday, 15 June 2014

Why C ++ is not just an Object-Oriented Programming Language: C++ Design Ideals



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 environments

7.) 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