Saya menyusun sejarah terperinci bahasa Pascal, dan ada beberapa detail yang saya lewatkan.
Ada begitu banyak fitur hari ini yang kami anggap remeh. Fitur apa yang secara signifikan berkontribusi pada evolusi Pascal, dan mengapa itu signifikan?
Saya mencari fitur bahasa, bukan fitur platform atau kerangka kerja. Jadi seperti operator kelebihan atau parameter default, tetapi tidak mendukung Linux atau widget Rich Text baru.
Saya tahu ada beberapa rasa berbeda dari Pascal (Delphi, Free Pascal, Oxygene, Quick Pascal, Apple Pascal, dll.) Dan mereka memperkenalkan fitur yang sama pada waktu dan paralel yang berbeda. Itu tidak apa-apa. Saya melihat bahasa Pascal secara keseluruhan, dan ketika tonggak penting terjadi (tanggal, versi, dll.)
Apps
, yang hanya merupakan rasa baru dari client-server).Jawaban:
Dari perspektif sejarah bahasa, mungkin kontribusi terbesar Pascal adalah keamanan tipe yang kuat. Pertempuran itu sebagian besar sudah berakhir sekarang - pihak Pascal menang - dan titik kritis industri adalah Jawa. Tetapi untuk waktu yang sangat lama, C lebih disukai daripada Pascal oleh orang-orang yang menganggap diri mereka tumbuh coders sebagian besar karena ini: orang ingin kebebasan untuk memanipulasi pointer mereka seolah-olah mereka adalah bilangan bulat. Implementasi praktis dari Pascal memiliki celah, namun, seperti serikat pekerja yang tidak secara dinamis memeriksa bidang diskriminan, atau bahkan melakukan typecasting penuh pointer ke titik menjadi semua tapi setara C (Turbo Pascal adalah salah satunya).
Ini, dan penyederhanaan spesifikasi ALGOL 68 yang rumit [1], mungkin menjadi titik awal.
[1] Coba baca laporan ALGOL 68 kapan saja - pasti produk dari tahun 60an! Satu situs di web menyebutkan beberapa jargon ganjilnya: 'token bus', 'pohon produksi tak kasat mata', 'lingkungan primer', 'persatuan incest', 'gagasan', 'protonotions', 'metanotions', 'metanotions', 'hypernotions', ' paranotions ', dll.
sumber
Saya akan mengatakan bahwa dua kekuatan pendorong terpenting sepanjang sejarah Pascal adalah:
sumber
Anda benar-benar harus kembali ke asalnya - temukan beberapa sejarah Niklaus Wirth. Pascal memulai hidupnya sebagai bahasa pengajaran. "Algoritma + Struktur Data = Program" adalah titik awal yang baik.
Pada saat itu, Pascal jauh lebih sederhana daripada Algol 68 dan PL / 1. Itu memaksa struktur dan deklarasi, dan keamanan tipe yang kuat, tidak seperti Fortran4 (Fortran 77 sedikit meningkatkan hal-hal di sana tetapi Anda masih bisa bermain sangat cepat-n-longgar). Dan dibandingkan dengan COBOL itu pendek, sederhana dan lebih mudah untuk menulis program. (Halo dunia dalam sekitar 6 baris, bukan 600).
Ketika itu berasal, ada hal-hal seperti array karakter di Pascal - itu saja untuk penanganan string. Banyak hal membaik selama bertahun-tahun.
Jika Anda benar-benar ingin mempelajari sejarah Pascal, beberapa poin yang harus Anda perhitungkan:
Kembali pada 1980-an ada pesta siput besar antara Pascal dan C. Ada banyak perkembangan dan aktivitas yang terjadi di kedua kubu.
Sebagai akibatnya, hal-hal aneh dan indah seperti Bliss-32, Algol, dan PL / 1 telah cukup banyak menghilang - tetapi ide-ide dari ini membuat jalan mereka ke Pascal.
Sunting: array karakter dapat dikemas yang memberikan beberapa properti khusus, tetapi jika Anda menginginkan apa yang sekarang kita kenal sebagai penanganan string, Anda perlu menumbuhkannya sendiri.
sumber
packed array[1..n] of char;
, misalnya dalam Baca (ln) dan Tulis (ln)Ekstensi Berorientasi Objek! Object Pascal adalah lompatan standar (tidak resmi) terbesar dengan rilis Delphi (1) pada pertengahan 90-an. Sulit untuk memilih hanya satu, tetapi seluruh inti dari model objek secara keseluruhan membantu membawa bahasa ke status modern. Sayangnya sampai hari ini belum dibuat menjadi standar tunggal tunggal resmi yang semua kompiler akan menyesuaikan untuk kode simetri.
Untungnya pengembang proyek Free Pascal telah cukup mengakomodasi fitur yang ditambahkan ke Delphi oleh Borland dan Embarcadero. RemObjects tidak begitu banyak tetapi setidaknya mereka memiliki ikatan dengan Embarcadero di bawah Delphi Prism sehingga penyimpangan dari standar (untuk membuat bahasa lebih sesuai dengan .NET) akan sangat didokumentasikan.
sumber
virtual
kata kunci untuk membuatnya dapat ditimpa oleh subclass.Hanya satu atau dua hal yang saya ingat dari menggunakan Pascal dahulu dengan MS-DOS:
Turbo Pascal kurang lebih memperkenalkan semacam IDE di tahun 80-an (dan kinerja kompilasi mendapat dorongan besar dibandingkan dengan UCSD Pascal
Entah bagaimana sekitar pertengahan 90-an Borland mengubah nama dari Turbo ke Borland Pascal . Sebagai langkah pertama, Unit diperkenalkan, yang memungkinkan untuk membagi proyek-proyek besar menjadi unit kompilasi yang terpisah.
Kemudian mereka menambahkan pemrograman berorientasi objek juga.
sumber
Salah satu langkah evolusi inti dalam Pascal adalah gagasan yang tepat tentang string. ISO 7185 ("Pascal Standar") tidak memilikinya, yang agak memalukan. Namun, semua programmer nyata membutuhkannya, dan implementasi Pascal yang layak (seperti Borland / Turbo Pascal) memang menyediakannya.
sumber
Melihat kembali pada inovasi bahasa Pascal Delphi - Saya akan menambahkan model Properti, Metode, Acara (PME) dan bagian "Diterbitkan" untuk kelas. Itu membuat kode asli, mudah digunakan dan memperluas pembangunan komponen menjadi mungkin. Komponen memenuhi janji Brad Cox tentang IC Perangkat Lunak.
sumber
Pertarungan antara banyak rasa Pascal di tahun 80-an dan awal 90-an.
Anda memiliki Apple Pascal , Microsoft Pascal dan QuickPascal , dan Turbo Pascal .
Semua memperkenalkan Object Pascal dalam satu cara atau yang lain (QuickPascal 1.0 dan Turbo Pascal 5.5 sekitar kerangka waktu yang sama). Apple karena mereka membutuhkannya untuk platform mereka, Microsoft dan Borland karena OO menjadi 'keren' (kemudian QuickPascal meninggal segera setelah itu, dan Turbo Pascal 6.0 menambahkan kerangka kerja OO yang masuk akal yang disebut Turbo Vision ).
Rudy Velthuis cukup lengkap dalam hal ini di postingan forumnya .
Anda dapat mengunduh gambar ISO dengan DOS 6.22 dan beberapa kompiler Pascal DOS dari era itu .
sumber
Saya pikir pengenalan antarmuka (dalam Delphi 3 IIRC) sangat penting untuk menjadikannya bahasa berorientasi objek modern.
sumber
Saya akan menambahkan metode anonim dan generik ke dalam campuran.
sumber
Fitur bahasa baru antara Delphi 7 dan Delphi XE dijelaskan pada halaman 52 dalam buku putih ini dari Embarcadero:
http://www.embarcadero.com/images/dm/technical-papers/reason-to-migrate-to-delphi-xe -white-paper.pdf
sumber
Bagi saya dua hal terbesar (setelah beberapa bahasa lain seperti C ...) adalah case insensitivity dan kecepatan kompiler.
Dan setelah itu adalah fakta bahwa lebih mudah untuk menulis dengan keyboard Finlandia, karena saya tidak perlu terus {} atau tombol lain yang sulit dijangkau ...
Saya sudah naik sejak Delphi2 tetapi menggunakan D1 dalam beberapa tahun kerja ...
sumber
Mulailah dengan "Pemrograman Terstruktur" , oleh Dahl, Dijkstra, dan Hoare. Bagian Dijkstra adalah fundamental, bahkan hari ini. Bagian Tony Hoare tentang penataan data meletakkan banyak dasar untuk PASCAL. (Bagian Dahl berbicara tentang apa yang akhirnya menjadi pemrograman berorientasi objek. Dia menggambarkan apa yang menjadi kelas dalam Simula 67.)
Lihat ALGOL-W, implementasi Wirth tentang varian ALGOL-60.
Anda juga perlu tahu tentang PL / I dan editor tautan IBM 360 (tautan) pada saat itu. Itu adalah keajaiban umum, dengan masalah kecil yang berlari lebih lambat dari molase pada bulan Januari di Juneau, Alaska. PASCAL secara khusus dirancang untuk dikompilasi dan dihubungkan dalam satu pass, untuk kecepatan. (Itu memang membantu bahwa bahasa tersebut memulai kehidupan pada superkomputer junior CDC 6400, dengan banyak memori, membuat kompiler satu-pass praktis.)
Sebenarnya ada dua versi utama PASCAL dari ETH Zurich. Bahasa yang dikenal semua orang sebagai PASCAL sebenarnya adalah PASCAL2, versi kedua.
sumber