**Pascal** (Paskal okunur) bilgisayar programlama dili pek çok öğrenciye bilgisayar programlamayı öğreten ve çeşitli versiyonları bugün hala yaygın olarak kullanılmaya devam eden en önemli programlama dillerinden biridir. İlk Macintosh işletim sisteminin çoğu ve TeX Pascal ile yazılmıştır.

Bilgisayar bilimcisi Niklaus Wirth Pascal'ı 1970'te yapısal programlamayı derleyiciler için daha kolay işlenir hale getirebilmek amacıyla geliştirmiştir. Adını matematikçi ve düşünür Blaise Pascal'dan alan Pascal, Algol programlama dilinden türemiştir. Wirth, Pascal'dan başka Modula-2 ve Oberon programlama dillerini de geliştirmiştir. Bu diller Pascal'a benzerler ve ayrıca nesneye yönelik programlamayı da desteklerler.

Temel sözdizimi
---------------

Bir dilin sözdizimine örnek olarak yaygın biçimde bir "Merhaba dünya" programı gösterilir. Aşağıda Pascal ile yazılmış bir "Merhaba dünya" programı görebilirsiniz:

```
program MerhabaDunya(output);
uses crt;
begin
 Write('Merhaba Dünya!');
end.

```

Pascal'da tüm programlar "Program" anahtar sözcüğü ile başlar ve ardından "Begin" / "End" anahtar sözcükleri ile sınırlanan bir blok gelir. Pascal dilinde harflerin büyüklüğü-küçüklüğü önemli değildir. İfadeler noktalı virgül ile ayrılır ve programlar bir nokta ile bitirilir. Bazı derleyiciler için "Program" satırı zorunlu değildir.

Orijinal halinde Pascal, tümüyle prosedürel bir dildir ve programlar if, while, for ve benzeri yapılardan oluşur.

Pascal ve C
-----------

Pascal ve C dilleri yaklaşık aynı zamanlarda geliştirilmişlerdir ve aralarında önemli benzerlikler vardır. Orijinal Pascal ile C'nin ikisi de yapısal programlama fikrini gerçekleştiren küçük ve prosedürel dillerdir. İkisinde de dinamik bellek ayırma ve işaretçi işleme (*İng.* pointer manipulation) mümkündür. Ancak, bu iki dil dışarıdan bakıldığında farklı görünürler (C programları genelde Pascal programlarından kısadır).

Tartışma yaratan farklılıklardan bir tanesi, Pascal'ın atama için := ve karşılaştırma için = imlerini kullanmasıdır. Matematikte = imi her iki amaç için de kullanıldığından, programcılar bazen yanlışlıkla Pascal'da :=, C'de ise == kastedildiği halde daha kısa olan = imini kullanırlar. C'nin tasarımcıları atama işleminin karşılaştırma işleminden daha sık kullanıldığını, dolayısıyla kısa olan imin atama işlemi için kullanılması gerektiğini savunurlar. Pascal'ın savunucuları ise, yanlışlıkla atama yapmanın yanlışlıkla karşılaştırma yapmaktan çok daha tehlikeli olduğunu savunurlar. Bu savunma, eğer, C'de olduğu gibi, bir if ifadesi içinde atama yapılabiliyorsa, kesinlikle doğrudur.

Bu tartışma, iki dilin tasarım mantıkları arasındaki farka işaret eder. Pascal, en azından kısmi olarak, bir eğitim dili olarak tasarlanmıştır. Yanlışlıklara yol açabilecek sözdizimi yapılarından kaçınılmış, sözdiziminin anlaşılması kolay olmasına dikkat edilmiştir. C'nin tasarımcıları ise dili programların kısa olması için tasarlamışlardır.

Bu iki dil arasındanki başka bir fark da, Pascal'ın "*strongly typed*" olmasıdır. Yani, bir değişken kullanılmadan önce belirli bir tipe sahip olmak üzere tanımlanmalıdır ve farklı tiplerden iki değişken birbirlerine atanamazlar. Bu sınırlama pek çok programlama yanlışını önler.

C'nin tersine, Pascal'da iç içe fonksiyon tanımlamak mümkündür.

Orijinal Pascal'da program parçaları ayrı ayrı derlenemezler ve derleme anında boyutu bilinmeyen diziler kullanmak mümkün değildir. Ancak bu sınırlamalar, Pascal'ın bazı versiyonlarında kaldırılmıştır. pascal biraz zor ama çözüldüğü zaman zevkli bir hale gelir.. Turbo pascal gibi programlar özellikle 'C' olup oyunlarda önde gelen programlardır.

Pascal derleyicileri
--------------------

İlk Pascal derleyicileri (örneğin kendisi de Pascal ile yazılmış olan UCSD p-System derleyicisi) Pascal programlarını makineden bağımsız p-Code'a çevirmek üzere tasarlanmışlardı. Bu kod, sonradan her sistem için ayrı bir program tarafından yorumlanıyordu. Sonuç olarak, yalnızca küçük yorumlayıcı kısım diğer mimarilere taşınmak (*port* edilmek) zorundaydı.

1980'lerde Anders Hejlsberg Nascom-2 için Blue Label Pascal derleyicisini yazdı. Daha sonra Borland'da çalışmaya başlayan Hejlsberg, burada derleyicisini IBM PC için baştan yazıp, adını *Turbo Pascal* koydu. Borland, Turbo Pascal'ı Hejlsberg'in Blue Label'ı sattığı fiyattan çok daha ucuza, 49 dolara sattı.

Ucuza elde edilebilen Borland derleyicisinin 1980'lerin sonunda IBM PC üzerinde yoğunlaşmaya başlayan Pascal topluluğunda büyük etkisi oldu. BASIC yerine yapısal bir programlama dili arayan pek çok PC amatörü Turbo Pascal'ı kullanmaya başladı. Yalnızca bir mimaride çalışan *Turbo Pascal*, programları doğrudan Intel 8088 makine diline çeviriyordu, dolayısıyla yorumlama kullanan yaklaşımdan daha hızlı idi.

**Super Pascal**, dile nümerik olmayan etiketler ve bir *return* ifadesi ekledi.

1990'larda değişik mimariler için işletilebilir kod üretebilen derleyiciler kullanılmaya başlandığında Pascal programları pek çok makine diline kolayca derlenebilir hale geldiler.

Borland, Turbo Pascal'a 5.5 versiyonunda nesneye yönelim ekledi.

Borland daha sonra daha geniş bir nesneye yönelim desteği istediğine karar verip, Apple'ın önerdiği (hala bir standart olmayan) *Object Pascal* taslağını kullanarak Delphi'yi geliştirmeye başladı. Borland da başta bu dili Delphi'de *Object Pascal* olarak adlandırdıysa da, sonradan dilin adını da Delphi olarak değiştirdi. Pascal'ın bu 'lehçesini' destekleyen başka derleyiciler de vardır.

Herkesin kullanımına açık derleyiciler
--------------------------------------

Herkesin kullanımına açık bazı Pascal derleyicileri aşağıda sıralanmıştır:

* P4 derleyicisi19 Şubat 2015 tarihinde Wayback Machine sitesinde arşivlendi.: Pascal kullanılarak yazılan (UCSD p-System dahil olmak üzere) pek çok Pascal derleyicisinin temeli olan derleyici.
* FreePascal25 Ocak 1999 tarihinde Wayback Machine sitesinde arşivlendi. da Pascal kullanılarak yazılmıştır (ve kendi kendini derleyebilir). FreePascal, kullanışlı ve güçlü bir derleyici olarak tasarlanmıştır ve eski uygulamaları derlemek için kullanılabileceği gibi, yeni uygulamalar yazmak için de geliştirilmiştir.
* Lazarus5 Ocak 2010 tarihinde Wayback Machine sitesinde arşivlendi.

Geçmişteki eleştiriler
----------------------

1980'lerde ve 1990'ların başındaki kadar olmasa da hala popüler olan Pascal, yine de "ciddi" programlama için uygun olmadığı ve yalnızca eğitim için kullanılabileceği savıyla eleştirilmiştir. C'nin yaratıcılarından olan Brian Kernighan, 1981'de yazdığı makalesi Why Pascal Is Not My Favorite Programming Language28 Nisan 2009 tarihinde Wayback Machine sitesinde arşivlendi. (Pascal Niçin Benim En Sevdiğim Dil Değildir) ile bu eleştirileri özetlemiştir. Öte yandan, 1980'lerde Apple Lisa ve Macintosh gibi büyük projeler Pascal'a dayanıyorlardı. Aradan geçen zaman içinde, Pascal gelişmeyi sürdürmüş ve bu sayede Kernighan'ın eleştirileri artık modern Pascal versiyonları için geçerli olmaktan çıkmıştır. Yeterli bilgiye sahip olmayan pek çok kimse bugün hala bu eleştirilerin geçerli olduğunu düşünmektedir. Pascal üzerindeki bu haksız damga, bugün Pascal'ın önündeki en büyük sorunlardan biridir.

| * g
* t
* d
ISO standartları |
| --- |
| ISO standartları / ISO romanizasyonları \ IEC standartları |
| 1-9999 | 
* 1
* 2
* 3
* 4
* 5
* 6
* 7
* 9
* 16
* 17
* 31
	+ -0
	+ -1
	+ -2
	+ -3
	+ -4
	+ -5
	+ -6
	+ -7
	+ -8
	+ -9
	+ -10
	+ -11
	+ -12
	+ -13
* 128
* 216
* 217
* 226
* 228
* 233
* 259
* 269
* 302
* 306
* 361
* 428
* 500
* 518
* 519
* 639
	+ -1
	+ -2
	+ -3
	+ -5
	+ -6
* 646
* 657
* 668
* 690
* 704
* 732
* 764
* 838
* 843
* 860
* 898
* 965
* 999
* 1000
* 1004
* 1007
* 1073-1
* 1155
* 1413
* 1538
* 1745
* 1745
* 1989
* 2014
* 2015
* 2022
* 2033
* 2047
* 2108
* 2145
* 2146
* 2240
* 2281
* 2533
* 2709
* 2711
* 2720
* 2788
* 2848
* 2852
* 3029
* 3103
* 3166
	+ -1
	+ -2
	+ -3
* 3297
* 3307
* 3601
* 3602
* 3864
* 3901
* 3950
* 3977
* 4031
* 4157
* 4165
* 4217
* 4909
* 5218
* 5426
* 5427
* 5428
* 5725
* 5775
* 5776
* 5800
* 5807
* 5964
* 6166
* 6344
* 6346
* 6385
* 6425
* 6429
* 6438
* 6523
* 6709
* 6943
* 7001
* 7002
* 7010
* 7027
* 7064
* 7098
* 7185
* 7200
* 7498
* 7637
* 7736
* 7810
* 7811
* 7812
* 7813
* 7816
* 8000
* 8093
* 8178
* 8217
* 8373
* 8501-1
* 8571
* 8583
* 8601
* 8613
* 8632
* 8651
* 8652
* 8691
* 8807
* 8820-5
* 8859
	+ -1
	+ -2
	+ -3
	+ -4
	+ -5
	+ -6
	+ -7
	+ -8
	+ -8-I
	+ -9
	+ -10
	+ -11
	+ -12
	+ -13
	+ -14
	+ -15
	+ -16
* 8879
* 9000/9001
* 9036
* 9075
* 9126
* 9141
* 9227
* 9241
* 9293
* 9314
* 9362
* 9407
* 9506
* 9529
* 9564
* 9592-9593
* 9594
* 9660
* 9797-1
* 9897
* 9899
* 9945
* 9984
* 9985
* 9995

 |
| 10000-19999 | 
* 10006
* 10007
* 10116
* 10118-3
* 10160
* 10161
* 10165
* 10179
* 10206
* 10218
* 10303
	+ -11
	+ -21
	+ -22
	+ -28
	+ -238
* 10383
* 10487
* 10585
* 10589
* 10646
* 10664
* 10746
* 10861
* 10957
* 10962
* 10967
* 11073
* 11170
* 11179
* 11404
* 11544
* 11783
* 11784 & 11785
* 11801
* 11889
* 11898
* 11940 (-2)
* 11941 (TR)
* 11992
* 12006
* 12182
* 12207
* 12234-2
* 13211
	+ -1
	+ -2
* 13216
* 13250
* 13399
* 13406-2
* 13450
* 13485
* 13490
* 13567
* 13568
* 13584
* 13616
* 14000
* 14031
* 14224
* 14289
* 14396
* 14443
* 14496
	+ -2
	+ -3
	+ -6
	+ -10
	+ -11
	+ -12
	+ -14
	+ -17
	+ -20
* 14644
* 14649
* 14651
* 14698
* 14750
* 14764
* 14882
* 14971
* 15022
* 15189
* 15288
* 15291
* 15292
* 15398
* 15408
* 15444
	+ -3
* 15445
* 15438
* 15504
* 15511
* 15686
* 15693
* 15706
	+ -2
* 15707
* 15897
* 15919
* 15924
* 15926
* 15926 WIP
* 15930
* 16023
* 16262
* 16355-1
* 16612-2
* 16750
* 16949 (TS)
* 17024
* 17025
* 17203
* 17369
* 17442
* 17799
* 18000
* 18004
* 18014
* 18245
* 18629
* 18916
* 19005
* 19011
* 19092 (-1
* -2)
* 19114
* 19115
* 19125
* 19136
* 19439
* 19500
* 19501
* 19502
* 19503
* 19505
* 19506
* 19507
* 19508
* 19509
* 19510
* 19600:2014
* 19752
* 19757
* 19770
* 19775-1
* 19794-5
* 19831

 |
| 20000+ | 
* 20000
* 20022
* 20121
* 20400
* 21000
* 21047
* 21500
* 21827:2002
* 22000
* 22300
* 22395
* 23270
* 23271
* 23360
* 24517
* 24613
* 24617
* 24707
* 25178
* 25964
* 26000
* 26262
* 26300
* 26324
* 27000 serisi
* 27000
* 27001
* 27002
* 27005
* 27006
* 27729
* 28000
* 29110
* 29148
* 29199-2
* 29500
* 30170
* 31000
* 32000
* 37001
* 38500
* 40500
* 42010
* 45001
* 50001
* 55000
* 80000
	+ -1
	+ -2
	+ -3

 |
| 
* Kategori Kategori

 |

| * g
* t
* d
Tümleşik geliştirme ortamları (IDE) |
| --- |
| C ve C++ | 

|  |  |
| --- | --- |
| Açık kaynak | 
* Android Studio
* Anjuta
* Code::Blocks
* CodeLite
* Dev-C++
* Eclipse
* Emacs
* Geany
* GNAT Programming Studio
* GNOME Builder
* KDevelop
* MonoDevelop
* NetBeans
* TheIDE
* QDevelop
* Qt Creator
* SharpDevelop
* Vi/Vim
* OpenWatcom

 |
| Freeware | 
* Oracle Developer Studio
* Visual Studio Community
* Xcode

 |
| Perakende | 
* C++Builder
* Eclipse-tabanlı
	+ CodeWarrior
	+ MyEclipse
* Visual Studio
* JetBrains tarafından
	+ IntelliJ IDEA
	+ AppCode
	+ CLion
* LabWindows/CVI
* IBM Rational Software Architect
* Understand
* SlickEdit

 |
| Durduruldu | 
* VisualAge
* Visual C++ Express
* Borland Turbo C / C++

 |

 |
| Java | 

|  |  |
| --- | --- |
| Açık kaynak | 
* Anjuta
* BlueJ
* DrJava
* Eclipse
* Geany
* Greenfoot
* IntelliJ IDEA Community Edition
	+ Android Studio
* NetBeans
* Servoy Community Edition

 |
| Freeware | 
* jGRASP
* JDeveloper

 |
| Perakende | 
* JCreator
* MyEclipse
* IBM
	+ WebSphere Integration Developer
* JetBrains IntelliJ IDEA
* Servoy Business Application Platform Edition
* SlickEdit
* Understand

 |
| Durduruldu | 
* Metrowerks CodeWarrior Pro for Java
* JBuilder
* Sun Java Studio Creator (yerini NetBeans aldı)
* VisualAge (yerini Eclipse aldı)
* Visual Café (Espresso olarak da bilinir, yerini JBuilder aldı)
* Visual J++
* Xelfi (NetBeans oldu)

 |

 |
| JavaScript | 

|  |  |
| --- | --- |
| Açık kaynak | 
* Vim
* Visual Studio Code
* Atom
* Chromium

 |

 |
| CLI | 

|  |  |
| --- | --- |
| Açık kaynak | 
* MonoDevelop
* SharpDevelop
* Visual Studio Code
* PascalABC.NET

 |
| Freeware | 
* Visual Studio Community

 |
| Perakende | 
* Visual Studio
* Rider
* Understand

 |
| Durduruldu | 
* Xamarin Studio
* Visual Basic Express
* Visual Web Developer Express
* Visual J# Express
* Visual Studio Express for Windows Phone
* Visual C++ Express
* Visual C# Express
* Express for Desktop
* Express for Web
* Express for Windows

 |

 |
| Flash | 
* Adobe Flash Builder
* FlashDevelop
* Powerflasher FDT

 |
| PHP | 

|  |  |
| --- | --- |
| Açık kaynak | 
* Aptana
* NetBeans
* Komodo Edit
* Komodo IDE
* KDevelop

 |
| Tescilli | 
* Codelobster
* PhpStorm
* PHPEdit
* SlickEdit
* Zend Studio

 |

 |
| R | 
* RStudio
* R Tools for Visual Studio

 |
| Python | 

|  |  |
| --- | --- |
| Açık kaynak | 
* Anjuta
* IDLE
* Eric
* Light Table
* Ninja-IDE
* PyDev
* PyScripter
* PIDA
* Spyder
* Komodo Edit
* Komodo IDE
* KDevelop
* Vim
* Visual Studio Code
* Thonny

 |
| Tescilli | 
* PyCharm
* PythonAnywhere
* SlickEdit
* Wing IDE

 |

 |
| Pascal ve Object Pascal | 

|  |  |
| --- | --- |
| Açık kaynak | 
* Free Pascal IDE
* Lazarus
* Dev-Pascal
* GNAVI

 |
| Freeware | 
* Delphi Community

 |
| Perakende | 
* Delphi

 |
| Durduruldu | 
* Turbo Pascal
* Virtual Pascal
* Borland Kylix

 |

 |
| BASIC | 

|  |  |
| --- | --- |
| Açık kaynak | 
* Basic-256
* B4X
* MonoDevelop
* SharpDevelop
* Microsoft Small Basic
* SdlBasic
* Gambas
* HBasic
* Basic For Qt
* Basic4GL
* QB64

 |
| Freeware | 
* FutureBASIC
* RapidQ
* thinAir
* Visual Studio Community

 |
| Perakende | 
* Visual Studio
* NS Basic
* PureBasic
* GLBasic
* Liberty BASIC
* Xojo

 |
| Durduruldu | 
* CA-Realizer
* Phoenix Object Basic
* QuickBASIC
* QBasic
* Visual Basic
* Visual Basic Express

 |

 |
| Go | 

|  |  |
| --- | --- |
| Açık kaynak | 
* Vim
* Visual Studio Code (VSCode)
* Eclipse

 |
| Freeware | 
* LiteIDE
* The Go Playground
* Cloud9 IDE

 |
| Perakende | 
* GoLand

 |

 |
| Çevrimiçi | 
* AWS Cloud9 IDE
* Eclipse Che
* SourceLair

 |
| 
* **Kategori**
* **Karşılaştırma**

 |

| * g
* t
* d
Programlama dilleri |
| --- |
| 
* Karşılaştırma
* Zaman Çizelgesi
* Tarihçe

 |
| 
* Ada
* ALGOL
* APL
* Assembly
* BASIC
* C
* C++
* C#
* Classic Visual Basic
* COBOL
* Erlang
* Forth
* Fortran
* Go
* Haskell
* Java
* JavaScript
* Kotlin
* Lisp
* Lua
* MATLAB
* ML
* Object Pascal
* Pascal
* Perl
* PHP
* Prolog
* Python
* R
* Ruby
* Rust
* SQL
* Scratch
* Shell
* Simula
* Smalltalk
* Swift
* Visual Basic
* *dahası...*

 |
| 
* Liste **Listeler:** Alfabetik
* Kategoriik
* Nesilsel
* İngilizce temelli olmayan
* Kategori Kategori

 |

|  |  |
| --- | --- |
| Otorite kontrolü Bunu Vikiveri'de düzenleyin | 
* BNF: cb11941547z (data)
* LCCN: sh85098423
* NKC: ph117098
* NLI: 987007529588505171

 |