Jumat, 29 Januari 2010

Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram. Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika.
Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih algoritma yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu sehingga menjadi sebuah program komputer. Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman.
Apakah memprogram perangkat lunak lebih merupakan seni, ilmu, atau teknik telah lama diperdebatkan. Pemrogram yang baik biasanya mengkombinasikan tiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi waktu berjalan (running time), atau memori.

Bahasa Pemrograman
Bahasa pemrograman yang berbeda mendukung gaya-gaya pemrograman yang berbeda (paradigma pemrograman. Pilihan bahasa pemrograman dipengaruhi oleh banyak alasan, seperti kecocokan dengan kriteria program yang akan dibuat.
Beberapa bahasa pemrograman adalah :
Pascal
Basic
C atau C++
Cobol
Java
Fortran
Ada

Pemrograman Kompetitif
Pemrograman adalah bahan yang banyak digunakan di berbagai kompetisi komputer di Indonesia maupun dunia. Di tingkat SMA, contohnya, pemrograman dipertandingkan dalam Olimpiade Sains Nasional setiap tahunnya. Ketigapuluh peraih medali di Olimpiade Sains Nasional ini kemudian menjadi Tim Olimpiade Komputer Indonesia, dan menempuh Pelatihan Nasional yang menyeleksi empat orang wakil untuk mengikuti Olimpiade Sains Internasional bidang Informasi (International Olympiad in Informatics) yang diadakan setiap tahunnya.


Sekilas Cari Wikiversity Wikiversity memiliki bahan belajar tentang pemrograman
Dalam rekayasa perangkat lunak, pemrograman (pelaksanaan) dianggap sebagai salah satu tahap dalam proses pengembangan perangkat lunak.
Ada sebuah perdebatan yang sedang berlangsung pada sejauh mana program penulisan adalah seni, kerajinan atau disiplin teknik. [1] Secara umum, baik programming adalah dianggap sebagai aplikasi diukur dari ketiga, dengan tujuan menghasilkan efisien dan solusi perangkat lunak evolvable (kriteria untuk "efisien" dan "evolvable" sangat bervariasi). Disiplin yang berbeda dari berbagai profesi teknis dalam programer, pada umumnya, tidak perlu izin atau lulus standar (atau governmentally diatur) tes sertifikasi untuk menyebut diri mereka "programer" atau bahkan "insinyur perangkat lunak." Namun, mewakili diri sendiri sebagai seorang "Professional Software Engineer" tanpa lisensi dari lembaga yang terakreditasi ilegal di banyak bagian dunia.

Lain sedang berlangsung perdebatan adalah sejauh mana bahasa pemrograman yang digunakan dalam menulis program komputer yang mempengaruhi bentuk program akhir diperlukan. Perdebatan ini analog dengan mengelilingi hipotesis Sapir-Whorf [2] dalam linguistik, yang mendalilkan bahwa suatu bahasa tertentu sifat mempengaruhi pikiran kebiasaan dari speaker. Pola bahasa yang berbeda menghasilkan pola pikir yang berbeda. Ide ini menantang kemungkinan mewakili dunia secara sempurna dengan bahasa, karena mengakui bahwa mekanisme bahasa apapun kondisi pikiran pembicara dari masyarakat.
Kata lain, pemrograman adalah kerajinan persyaratan mengubah menjadi sesuatu yang dapat mengeksekusi sebuah komputer.

Sejarah pemrograman Lihat juga: Sejarah bahasa pemrograman Wired plug board untuk IBM 402 Accounting Machine.
Konsep perangkat yang beroperasi setelah telah ditetapkan, set instruksi ditelusuri ke Mitologi Yunani, terutama Hephaestus dan pelayan mekanis [3]. Para mekanisme Antikythera kalkulator menggunakan persneling dari berbagai ukuran dan konfigurasi untuk menentukan operasi. Dikenal paling awal dapat diprogram mesin (mesin yang perilakunya dapat dikendalikan dan diprediksi dengan satu set instruksi) adalah Al-Jazari's programmable Automata pada 1206. [4] Salah seorang Al-Jazari's robot ini awalnya sebuah perahu otomatis dengan empat musisi yang mengambang di danau untuk menghibur para tamu di pesta minum kerajaan. Pemrograman perilaku mekanisme ini berarti menempatkan pasak dan Cams ke drum kayu di lokasi tertentu. Ini kemudian akan bertabrakan dengan pengungkit kecil yang beroperasi alat musik perkusi. Keluaran dari perangkat ini adalah drumer kecil bermain berbagai ritme dan pola drum. [5] [6] canggih lainnya mesin diprogram oleh Al-Jazari adalah benteng jam, terkenal karena konsep variabel, yang operator bisa memanipulasi yang diperlukan ( yaitu, panjang siang dan malam). The Jacquard Loom, Joseph Marie Jacquard yang dikembangkan pada tahun 1801, menggunakan serangkaian kartu karton dengan menekan lubang di dalamnya. Pola lubang pola yang mewakili alat tenun harus mengikuti menenun kain. Alat tenun bisa menghasilkan tenun yang sama sekali berbeda dengan menggunakan kumpulan kartu yang berbeda. Charles Babbage mengadopsi penggunaan kartu menekan sekitar tahun 1830 untuk mengendalikan Analytical Engine. Sintesis perhitungan numerik, operasi dan output telah ditentukan, bersama dengan cara untuk mengatur dan masukan petunjuk dalam cara yang relatif mudah bagi manusia untuk hamil dan menghasilkan, menyebabkan perkembangan modern pemrograman komputer. Pengembangan pemrograman komputer dipercepat melalui Revolusi Industri.
Pada akhir 1880-an, Herman Hollerith menciptakan rekaman data pada media yang kemudian dapat dibaca oleh mesin. Sebelum menggunakan mesin yang dapat dibaca dari media, di atas, telah untuk kontrol, bukan data. "Setelah beberapa percobaan awal dengan kertas pita, ia menetap di kartu menekan ..."[ 7] Untuk memproses kartu menekan ini, pertama dikenal sebagai" kartu Hollerith "dia menciptakan mesin tabulasi, dan kunci mesin punch. Ketiga penemuannya dasar dari industri pengolahan informasi modern. Pada tahun 1896 ia mendirikan Tabulating Machine Company (yang kemudian menjadi inti dari IBM). Penambahan panel kontrol ke Tipe I Tabulator 1906 memungkinkannya untuk melakukan pekerjaan yang berbeda tanpa harus secara fisik dibangun kembali. Pada akhir 1940-an, ada berbagai plug-board programmable mesin, yang disebut catatan unit peralatan, untuk melakukan tugas-tugas pengolahan data (kartu membaca). Pemrogram komputer awal plug-papan yang digunakan untuk berbagai perhitungan kompleks diminta dari mesin yang baru diciptakan. Data dan instruksi dapat disimpan pada kartu punch eksternal, yang disimpan dalam rangka program dan disusun dalam deck.

Penemuan arsitektur Von Neumann memungkinkan program komputer untuk disimpan dalam memori komputer. Program awal harus susah payah dibuat dengan menggunakan instruksi mesin tertentu, sering kali dalam notasi biner. Setiap model komputer mungkin akan memerlukan berbagai instruksi untuk melakukan tugas yang sama. Bahasa assembly kemudian dikembangkan yang memungkinkan programmer menentukan setiap instruksi dalam format teks, singkatan memasukkan kode untuk setiap operasi, bukan menetapkan sebuah nomor dan alamat dalam bentuk simbolik (misalnya, ADD X, TOTAL). Pada tahun 1954 ditemukan Fortran, menjadi yang pertama bahasa pemrograman tingkat tinggi yang memiliki implementasi fungsional. [8] [9] Hal diperbolehkan pemrogram untuk menentukan perhitungan dengan memasukkan formula secara langsung (misalnya Y = X * 2 + 5 * X + 9) . Program teks, atau sumber, diubah menjadi instruksi mesin menggunakan program khusus yang disebut kompilator. Banyak bahasa lainnya dikembangkan, termasuk beberapa program untuk komersial, seperti COBOL. Program itu sebagian besar masih masuk menggunakan kartu atau kertas punch tape. (Lihat pemrograman komputer di era kartu punch). Pada akhir 1960-an, perangkat penyimpanan data dan terminal komputer menjadi cukup murah sehingga program dapat dibuat dengan mengetikkan langsung ke dalam komputer. Editor teks dikembangkan yang memungkinkan perubahan dan perbaikan harus dilakukan jauh lebih mudah dibandingkan dengan punch card.

Ketika waktu telah berkembang, komputer telah membuat lompatan raksasa di bidang pengolahan kekuasaan. Ini telah membawa bahasa pemrograman baru yang lebih disarikan dari hardware yang mendasarinya. Walaupun bahasa tingkat tinggi biasanya dikenakan biaya overhead yang lebih besar, peningkatan kecepatan komputer modern telah membuat penggunaan bahasa-bahasa ini jauh lebih praktis daripada di masa lalu. Ini semakin disarikan bahasa biasanya lebih mudah untuk belajar dan memungkinkan para programmer untuk mengembangkan aplikasi jauh lebih efisien dan dengan lebih sedikit kode. Namun, bahasa tingkat tinggi masih praktis untuk beberapa program, seperti yang di mana tingkat rendah diperlukan pengendalian perangkat keras atau di mana kecepatan pemrosesan berada pada premi.

Sepanjang paruh kedua abad kedua puluh, pemrograman adalah karier yang menarik di sebagian besar negara-negara maju. Beberapa bentuk pemrograman telah lepas pantai semakin tunduk pada outsourcing (impor perangkat lunak dan jasa dari negara-negara lain, biasanya pada upah yang lebih rendah), membuat keputusan karir pemrograman di negara maju lebih rumit, sementara meningkatkan peluang ekonomi di daerah-daerah kurang berkembang. Tidak jelas sejauh mana tren ini akan berlanjut dan seberapa dalam dampak akan programmer upah dan kesempatan. [sunting] Modern pemrograman [sunting] Kualitas persyaratan
Apapun pendekatan pengembangan perangkat lunak mungkin, program akhir harus memenuhi beberapa sifat mendasar. Properti berikut adalah di antara yang paling relevan: * Efisiensi / kinerja: jumlah sumber daya sistem program yang mengkonsumsi (prosesor waktu, ruang memori, perangkat lambat seperti disk, bandwidth jaringan dan bahkan sampai batas tertentu interaksi dari pemakai): semakin sedikit, semakin baik. Ini juga termasuk pembuangan benar beberapa sumber, seperti membersihkan file-file sementara dan tidak adanya kebocoran memori.

* Reliabilitas: seberapa sering hasil dari sebuah program sudah benar. Hal ini tergantung pada kebenaran konseptual algoritma, dan pemrograman minimisasi kesalahan, seperti kesalahan dalam manajemen sumber daya (misalnya, buffer overflows dan ras kondisi) dan kesalahan logika (seperti pembagian dengan nol).
* Kekokohan: seberapa baik program masalah mengantisipasi bukan karena kesalahan programmer. Ini termasuk situasi seperti salah, tidak pantas atau merusak data, tidak tersedianya sumber daya yang dibutuhkan seperti memori, sistem operasi layanan dan koneksi jaringan, dan kesalahan pengguna.
* Kegunaan: yang ergonomi sebuah program: kemudahan dengan mana seseorang dapat menggunakan program untuk tujuan, atau dalam beberapa kasus bahkan tujuan tak terduga. Isu-isu tersebut dapat membuat atau menghancurkan kesuksesan bahkan tanpa masalah lain. Hal ini melibatkan berbagai tekstual, grafis dan kadang-kadang elemen-elemen perangkat keras yang meningkatkan kejelasan, intuitif, kekompakan dan kelengkapan program antarmuka pengguna.
* Portabilitas: kisaran perangkat keras komputer dan platform sistem operasi yang kode sumber dari program dapat dikompilasi / ditafsirkan dan lari. Hal ini tergantung pada perbedaan-perbedaan dalam fasilitas pemrograman yang disediakan oleh platform yang berbeda, termasuk hardware dan sistem operasi sumber daya, perilaku yang diharapkan dari hardware dan sistem operasi, dan ketersediaan platform compiler tertentu (dan kadang-kadang perpustakaan) untuk bahasa dari source code.
* Kemampu-rawatan: kemudahan dengan sebuah program yang dapat dimodifikasi oleh pengembang sekarang atau di masa mendatang dalam rangka untuk membuat perbaikan atau penyesuaian, memperbaiki bug dan lubang keamanan, atau disesuaikan dengan lingkungan baru. Praktek yang baik selama pengembangan awal membuat perbedaan dalam hal ini. Kualitas ini mungkin tidak secara langsung jelas bagi pengguna akhir tetapi dapat secara signifikan mempengaruhi nasib sebuah program jangka panjang.

algorithmic kompleksitas
Bidang akademik dan praktek teknik pemrograman komputer yang baik terutama berkaitan dengan menemukan dan menerapkan algoritma yang paling efisien untuk suatu masalah kelas. Untuk tujuan ini, algoritma diklasifikasikan menjadi perintah dengan menggunakan apa yang disebut notasi Big O, O (n), yang mengungkapkan penggunaan sumber daya, seperti waktu eksekusi atau pemakaian memori, dalam hal ukuran sebuah input. Ahli programmer yang akrab dengan berbagai mapan algoritma dan kompleksitas masing-masing dan menggunakan pengetahuan ini untuk memilih algoritma yang paling cocok dengan keadaan.

Metodologi
Langkah pertama dalam sebagian besar proyek-proyek pengembangan perangkat lunak formal adalah analisis persyaratan, diikuti dengan pengujian untuk menentukan model nilai, pelaksanaan, dan kegagalan penghapusan (debug). Terdapat banyak pendekatan yang berbeda untuk masing-masing tugas. Salah satu pendekatan yang populer untuk analisis kebutuhan adalah Kasus Gunakan analisis.

Teknik model populer meliputi Object-Oriented Analysis and Design (OOAD) dan Model-Driven Architecture (MDA). The Unified Modeling Language (UML) adalah sebuah notasi yang digunakan untuk kedua OOAD dan MDA.
Teknik yang sama digunakan untuk desain database adalah Entity-Relationship Modeling (ER Modeling).

Pelaksanaan teknik termasuk bahasa imperatif (object-oriented atau prosedural), fungsional bahasa, dan logika bahasa. [sunting] Mengukur pemakaian bahasa
Sangat sulit untuk menentukan apa yang paling populer bahasa pemrograman modern. Beberapa bahasa yang sangat populer untuk jenis aplikasi tertentu (misalnya, COBOL masih kuat di pusat data perusahaan, sering pada mainframe besar, FORTRAN dalam aplikasi teknik, bahasa scripting dalam pengembangan web, dan C dalam aplikasi embedded), sementara beberapa bahasa teratur digunakan untuk menulis berbagai macam aplikasi.
Metode untuk mengukur popularitas bahasa pemrograman meliputi: menghitung jumlah iklan lowongan pekerjaan yang menyebutkan bahasa [10], jumlah buku-buku pengajaran bahasa yang dijual (overestimates ini pentingnya bahasa baru), dan perkiraan jumlah baris yang ada kode yang ditulis dalam bahasa (meremehkan ini jumlah pengguna bahasa bisnis seperti COBOL).

Debugging Sebuah bug, yang debugged pada tahun 1947.
Debugging adalah tugas yang sangat penting dalam proses pengembangan perangkat lunak, karena program yang salah dapat memiliki konsekuensi yang signifikan bagi penggunanya. Beberapa bahasa yang lebih rentan terhadap beberapa jenis kesalahan karena mereka tidak memerlukan spesifikasi kompiler untuk melakukan pengecekan sebanyak bahasa lainnya. Penggunaan alat analisis statis dapat membantu mendeteksi beberapa kemungkinan masalah.
Debug sering dilakukan dengan IDE seperti Visual Studio, NetBeans, dan Eclipse. Standalone debugger seperti gdb juga digunakan, dan ini kurang sering menyediakan lingkungan visual, biasanya menggunakan baris perintah.

Bahasa pemrograman Artikel utama: bahasa pemrograman dan bahasa pemrograman Daftar
Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda (disebut paradigma pemrograman). Pilihan bahasa yang digunakan adalah tunduk pada banyak pertimbangan, seperti kebijakan perusahaan, kesesuaian untuk tugas, ketersediaan pihak ketiga paket, atau keinginan individunya. Idealnya, bahasa pemrograman yang paling cocok untuk tugas yang dihadapi akan dipilih. Trade-off dari ideal ini melibatkan cukup menemukan programmer yang tahu bahasa untuk membangun sebuah tim, ketersediaan compiler untuk bahasa, dan efisiensi dengan program-program yang ditulis dalam bahasa tertentu mengeksekusi.

Allen Downey, dalam bukunya How To Think Like A Computer Scientist, menulis: Rincian terlihat berbeda dalam berbagai bahasa, tetapi beberapa petunjuk dasar muncul di hampir setiap bahasa:
* Input: Get data dari keyboard, file, atau beberapa perangkat lain.
* Output: Display data pada layar atau mengirim data ke file atau perangkat lain.
* Berhitung: Lakukan operasi aritmatika dasar seperti penjumlahan dan perkalian.
* Bersyarat eksekusi: Periksa kondisi tertentu dan melaksanakan urutan sesuai pernyataan.
* Pengulangan: Lakukan beberapa tindakan berulang-ulang, biasanya dengan beberapa variasi.
Banyak bahasa komputer menyediakan mekanisme untuk memanggil fungsi yang disediakan oleh perpustakaan. Menyediakan fungsi-fungsi di perpustakaan mengikuti konvensi runtime yang sesuai (misalnya, metode lewat argumen), maka fungsi-fungsi ini dapat ditulis dalam bahasa lainnya.

Pemrogram Artikel utama: Programmer Lihat juga: Software pengembang dan Software engineer
Pemrogram komputer adalah orang-orang yang menulis perangkat lunak komputer. Pekerjaan mereka biasanya meliputi: * Coding
* Kompilasi
* Dokumentasi
* Integrasi
* Pemeliharaan
* Persyaratan analisis
* Software arsitektur
* Software pengujian
* Spesifikasi
* Debugging

Algoritma dan pemograman

Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

Sejarah istilah "algoritma"
Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.

Jenis-jenis Algoritma
Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.
Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.

Turbo Pascal

Turbo Pascal adalah sebuah sistem pengembangan perangkat lunak yang terdiri atas kompiler dan lingkungan pengembangan terintegrasi (dalam bahasa inggris: Integrated Development Environment - IDE) atas bahasa pemrograman pascal untuk sistem operasi CP/M, CP/M-86, dan MS-DOS, yang dikembangkan oleh Borland pada masa kepemimpinan Philippe Kahn. Nama Borland Pascal umumnya digunakan untuk paket perangkat lunak tingkat lanjut (dengan kepustakaan yang lebih banyak dan pustaka kode sumber standar) sementara versi yang lebih murah dan paling luas digunakan dinamakan sebagai Turbo Pascal. Nama Borland Pascal juga digunakan sebagai dialek spesifik Pascal buatan Borland.
Borland telah menembangkan tiga versi lama dari Turbo Pascal secara gratis disebabkan karena sejarahnya yang panjang khusus untuk versi 1.0, 3.02, dan 5.5 yang berjalan pada sistem operasi MS-DOS.

Sejarah
Turbo Pascal pada awalnya adalah kompiler Blue Label Pascal yang dibuat untuk sistem operasi komputer mikro berbasis kaset, NasSys, milik Nascom tahun 1981 oleh Anders Hejlsberg. Kompiler tersebut ditulis ulang untuk CP/M dan dinamai Compas Pascal, dan kemudian dinamai Turbo Pascal untuk sistem operasi MS-DOS dan CP/M. Versi Turbo Pascal untuk komputer Apple Macintosh sebenarnya pernah ditembangkan tahun 1986, namun pengembangannya dihentikan sekitar tahun 1992. Versi-versi lain pernah tersedia pula untuk mesin-mesin CP/M seperti DEC Rainbow dalam beberapa penembangan.

Versi 1 hingga versi 3

Halaman depan buku panduan Turbo Pascal 3.0
Borland membeli lisensi atas kompiler PolyPascal yang ditulis oleh Anders Hejlsberg (Poly Data adalah nama perusahaan yang didirikannya di Denmark), dan menambahkan antar muka pengguna serta editor. Anders kemudian bergabung sebagai karyawan dan menjadi arsitek atas semua versi kompiler Turbo Pascal dan tiga versi pertama Borland Delphi.[1]
Versi pertama dari Turbo Pascal, yang kemudian disebut sebagai versi 1, memiliki unjuk kerja yang sangat cepat dibandingkan kompiler pascal untuk komputer mikro lainnya. Kompiler tersebut tersedia untuk sistem operasi CP/M, CP/M-86, dan MS-DOS, dan penggunaannya sangat luas pada masa itu. Versi Turbo Pascal untuk CP/M saat itu bisa digunakan pada komputer Apple II yang sangat populer jika digunakan dengan sebuah Z-80 SoftCard, produk perangkat keras pertama yang ditembangkan microsoft di tahun 1980.
Pada saat itu CP/M menggunakan format berkas executable yang sederhana dengan menggunakan ekstensi .COM; sistem operasi MS-DOS bisa menggunakan baik .COM (tidak kompatibel dengan format yang terdapat pada CP/M) maupun format .EXE. Turbo Pascal pada saat itu hanya mendukung kode biner berformat .COM, pada masa itu hal tersebut tidak menjadi suatu bentuk keterbatasan. Perangkat lunak Turbo Pascal itu sendiri merupakan sebuah berkas berekstensi .COM dan berukuran sekitar 28 kilobita, termasuk editor, kompiler, dan linker, dan rutin-rutin pustaka. Efisiensii proses edit/kompilasi/jalankan lebih cepat dibandingkan dengan implementasi paskal pada kompiler lainnya disebabkan semua elemen yang terkait dalam pengembangan program diletakkan pada memori komputer (RAM), dan karena kompilernya sendiri merupakan kompiler berjenis single-pass compiler yang ditulis dengan bahasa assembler. Unjuk kerja proses kompilasi sangat cepat dibandingkan dengan produk lain (bahkan dibandingkan dengan kompiler C milik Borland sendiri).
Ketika pertama kali versi Turbo Pascal muncul pada tanggal 20 November 1983, jenis IDE yang digunakannya masih terbilang baru. Pada debutnya terhadap pasar perangkat lunak di Amerika, perangkat lunak tersebut dibandrol dengan harga USD$49.99. Kualitas kompiler pascal terintegrasi terdapat dalam Turbo Pascal sangat baik dibandingkan kompetitor lain dan atas fitur-fitur tersebut ditawarkan dengan harga yang terjangkau.
Versi 2 dan 3 merupakan pengembangan lebih lanjut dari versi sebelumnya, mampu berkerja dalam memori, dan menghasilkan berkas biner berekstensi .COM/.CMD. Dukungan atas sistem operasi CP/M dan CP/M-86 dihentikan setelah versi 3.

Versi-versi lanjutan
Versi 4, ditembangkan tahun 1987, merupakan perangkat lunak yang ditulis ulang untuk keseluruhan sistem. Kompiler menghasilkan berkas biner berekstensi .EXE pada MS-DOS, dan tidak lagi .COM. Sistem operasi CP/M dan C/M-86 tidak lagi didukung pada versi kompiler ini. Versi ini pula memperkenalkan sebuah antar muka berlayar penuh dengan yang dilengkapi dengan menu tarik; versi-versi awal memilik layar menu berbasis teks; dan editor berlayar-penuh. Microsoft Windows belum ada saat versi ini ditembangkan, dan bahkan pemanfaatan tetikus-pun masih jarang.
Versi 5.x diperkenalkan dengan layar biru yang kemudian menjadi ciri khas yang sangat familiar, yang kemudian menjadi merek dagang perusahaan perangkat kompiler MS-DOS sampai era DOS berakhir di pertengahan tahun 1990-an.
Versi terakhir yang pernah ditembangkan adalah versi 7. Borland Pascal 7 terdiri atas sebuah IDE, dan kompiler untuk MS-DOS, DOS terekstensi, dan program Windows 3.x. Turbo Pascal 7 di sisi lain hanya bisa membuat program MS-DOS standar. Perangkat lunak tersebut dilengkapi pula dengan pustaka grafis yang mengabstraksi pemrograman dalam menggunakan beberapa driver grafis eksternal, namun unjuk kerja pustaka ini tidak memuaskan.

Bahasa Perakit
Meski semua versi Turbo Pascal mendukung inline machine code kode mesin yang disertakan dalam baris kode sumber bahasa pascal, versi-versi berikutnya mendukung integrasi bahasa perakit (Assembly) dengan Pascal secara mudah. Hal ini memungkinkan pemrogram untuk meningkatkan unjuk kerja eksekusi program lebih lanjut, selain itu, memungkinkan pemrogram untuk mengakses perangkat keras secara langsung.
Dukungan atas model memori atas prosesor 8086 tersedia melalui inline assembly, opsi kompiler, dan eksensi bahasa seperti menggunakan kata kuci "absolute".

Suksesi
Pada tahun 1995 Borland menghentikan pengembangan Turbo Pascal dan menggantinya dengan Delphi, berbasis Object Pascal (bahasa Pascal yang telah dilengkapi dengan fitur pemrograman berorientasi obyek). Perangkat lunak tersebut membawa banyak konsep baru kepada pengguna Turbo Pascal seperti konsep pemrograman berbasis RAD (singkatan dari rapid application development). Meski demikan, versi 32 bit Delphi masih mendukung cukup banyak aspek-aspek yang ada pada Turbo Pascal.
Beberapa produk lain yang kompatibel dengan Turbo Pascal juga bermunculan seperti Free Pascal dan Virtual Pascal.

Pendidikan
Borland Pascal masih digunakan sebagai materi yang dipelajari sebagai mata pelajaran atau mata kuliah di beberapa sekolah, dan universitas di Jerman, dan Amerika. Di Beligia, Romania, Serbia, Moldova dan Bulgaria Pascal digunakan bahkan di sekolah menengah tingkat pertama. Namun di Afrika selatan, Pascal tidak lagi digunakan, melainkan menggunakan Delphi dan Java.
Beberapa kalangan guru lebih memilih Borland Pascal 7, atau Turbo Pascal 5.5 disebabkan karena lebih sederhana dibandingkan IDE modern yang ada saat ini (seperti Visual Studio, atau Borland JBuilder), dengan demikian meraka dapat memfokuskan pengajaran lebih banyak pada sisi bahasa, dan bukan pada bagaimana cara mengoperasikan IDE tersebut. Selain dari itu, perangkat lunak tersebut tersedia secara gratis dan bisa diunduh dari situs resminya.

Contoh kode
Bahasa Pascal tidak bersifat case sensitive.
Secara historis, komentar dalam bahasa pascal diidentifikasikan sebagai { seperti ini }, atau (* seperti ini *), dan bisa terdiri atas beberapa baris. Versi lanjutan Borland Pascal juga mendukung model komentar seperti yang terdapat pada C++. // seperti ini , yang berlaku pada satu baris.
Sintaksis case yang lebih fleksibel daripada Pascal standar.
Himpunan hanya bisa memiliki hingga 28 (256) anggota.
Standar, string dengan panjang yang tetap didukung, namun terdapat pula tipe data String yang lebih fleksibel.
Berikut ini adalah contoh klasik program Halo dunia dengan Turbo Pascal:
begin
WriteLn('Halo dunia');
end.

Dan berikut ini contoh program yang meminta masukan nama dan menuliskannya kembali di layar sebanyak seratus kali:
program TulisNama;

var
ANama: String; { Deklarasi variabel Name sebagai string }
AUlang: integer; { variabel yang digunakan untuk perulangan }
begin
Write('Masukkan nama anda: ');
Readln(ANama); { Readln akan membaca masukan yang dientrikan oleh pengguna }
for AUlang := 1 to 100 do
WriteLn('Halo ', ANama)
end.