PASCAL Programlama Dilinin Yapısı:

Programlama28/12/2007


Pardus`la uğraşırken acaba linux da kullanabilecegim programlama dilleri nelerdir diye merak ettim. Ve karşıma eski dost pascal çıktı. çok eskiden kullandığımız bu dil fpc(freepascal) uygulaması sayesinde linux da da çalışıyor.

önemli olduğunu düşündüğüm bir dökümanı da yazmak istedim. Yarın birgün ihtiyaç olunca internnette aramaktan sa elimizin altında bulunsun...

PASCAL Programlama Dilinin Yapısı:

PASCAL, yapısal bir programlama dilidir. Bu dil ile yazılmış programları oluşturan komutlara baktığınızda bloklar halinde olduğunu görebilirsiniz. Belirli bir işlemi yerine getirmek için bir araya getirilmiş komutun ve/veya komutların oluşturduğu program parçasına blok denir.

PASCAL `da yazılan bir programın genel yapısını üç ana başlıkta toplayabiliriz. Bunlar;

1)Program Başlığı,
2)Bilgi Tanıtım Bölümü ve
3)Program İşlem Bölümü `dür.

Kısa bir örnek vermek gerekirse yazacağımız programlar kabaca şu dizilimde olacaktır:

Program program_adi
Tanımlamalar
Procedure ve Function `lar
Ana Program Kesimi


Bu örneği biraz daha genişletirsek;

Program ProgramAdi
Uses

{ Kullanılacak unitler }

Type

{ özel veri tipleri }
Const

{ Sabitler }
Var

{ Değişkenler }
Label

{ Etiketler }
Procedure ProcedureAdi
Type.....
Const.....
Label.....
Var.....
Begin
{ Procedure ile ilgi kısım }
End;
Function FonksiyonAdi
Type.....
Const.....
Label.....
Var.....
Begin
{ Fonksiyon ile ilgi kısım }
End;
BEGIN

{ Ana Program Kesimi }
END.


1) Program Başlığı: Kodların en başında "Program ...." şeklinde tanımlanan kısımdır. Programa bir isim vermek amacıyla kullanılır ancak bir zorunluluğu yoktur. Vereceğiniz tanıtıcı isim en fazla 30 karakter uzunluğunda olabilir.


2) Bilgi Tanıtım Bölümü: Program içinde kullanılacak bilgilerin tanımlandığı bölümdür. Belirli bloklara ayrılır. Bunlar:

UNIT: Programcıya kodlamada kolaylık sağlayan kütüphanelere verilen addır.
USES: Kullanılacak kütüphaneler bildirilir. (crt, dos, printer vs.)
LABEL: Etiket isimleri tanımlanır. (Goto komutuyla kullanmak için)
CONST: Program içinde hiç değişmeyecek bilgiler tanımlanır. (Mesela pi sayısı gibi)
TYPE: özel veri tipleri oluşturmak için kullanılır.
VAR: Değişken tanımlamak için kullanılır.
PROCEDURE: Program parçalarını belli isimler altında hazırlayıp daha sonra bir komut gibi kullanmak için oluşturulur. Bu blok içinde tanımlanan var,const,type ve label bölümleri sadece tanımlanan procedure için geçerlidir. Programın diğer kısımlarında kullanılamazlar.
FUNCTION: Program parçalarını belli isimler altında hazırlayıp daha sonra bir fonksiyon gibi kullanmak için oluşturulur. Bu blok içinde tanımlanan var,const,type ve label bölümleri sadece tanımlanan function için geçerlidir. Programın diğer kısımlarında kullanılamazlar.



3) Program İşlem Blokları: BEGIN ile başlar ve END. ile biter. Programın yapacağı işleve göre, blokların yazıldığı bölümdür. Program çalıştırıldığında bize bir sonuç verecek bölüm burasıdır.


Her programlama dilinde olduğu gibi PASCAL programlama dilinin de bazı kuralları vardır. Bunlar;
  • Büyük/küçük harf ayırımı yoktur.
  • İşlemler belli sıraya göre ve birbirini takip eden bloklar şeklinde yapılır.
  • İfadeler arasında birden fazla bırakılan boşluk, tek bir boşluğa eş değerdir.
  • Her PASCAL komut satırı noktalı-virgül ( ; ) işareti ile bitmelidir. (İstisnalar mevcut)
  • İsimler (değişken, program, type isimleri vs.) alfabetik bir karakter ile başlamalıdır Diğerleri rakam, alfabetik karakter veya alt çizgi (_) karakteri olabilir.
  • Kullanacağınız isimler RESERVED WORDS `lerden farklı olmalıdır.
  • Kullanacağınız değişkenler gerekli bölümde mutlaka tanımlanmalıdır.
  • Kullanacağınız değişkenlerin tipleri gerekli bölümlerde mutlaka tanımlanmalıdır.

özel Semboller:

Programlama dillerinde kodlama esnasında kullanılan en küçük bilgi birimi karakterlerdir. Karakter bir harfin, rakamın veya özel bir işaretin sembolüdür. PASCAL `da karakterler üç gruba ayrılırlar:

A)Alfabetik Karakterler: A-Z arasındaki tüm harfler. (Türkçe karakterler hariç)

B)Sayısal Karakterler: 0-9 arasındaki rakamlar.

C)özel İşaretler: "+", "-", "*", "/", "=", "<", ">", "[", "]", "(", ")", ",", ".", ":", ";", "^", "@", "{", "}", "$", "#", "<>", "<=", ">=", "=", ":=", "..", "(* *)", "(. .)", "{$ }"




+
Toplama işlemi ve string birleştirmek için kullanılır.
*, -, /
Aritmetik İşlemler için kullanılır. çarpma, çıkarma, bölme.
=, < >, <, >, >=, <=
Karşılaştırma işlemleri için kullanılır, Eşit, farklı, küçük, büyük, büyük eşit, küçük eşit
[ ], (. .)
Diziye ait sıra numarasını belirtmek için kullanılır.
;
Her komut satırından sonra mutlaka kullanılmalıdır.
{ }, (* *)
Program içinde açıklama yazmak için kullanılır.
:=
Değişkenlere değer aktarmak/atamak için kullanılır.
.
Programların en sonuna ve ondalıklı sayıların ondalıklı kısmını ayırmak için kullanılır.
{$ }
Derleyici bilgilerini belirtmek için kullanılır.
:
Değişken tanımlamada ve case-of komutuyla kullanılır.
( )
Procedure/function için parametre tanımlamada, işlem önceliğinde kullanılır.
@
Adres belirtmek için kullanılır.
#
Kod numaraları ile karakter belirtmek için kullanılır.
`
Alfa sayısal bilgilerin tanımlanmasında kullanılır.
^
Göstergeç değerini bellekten çağırmak için kullanılır.


Bu sembolleri Const, Var, Type gibi tanımlamalarda kullanamazsınız. özel sembollerle ilgili birkaç örnek verelim:

A:=B+C; B ile C `nin değerini toplayıp A değişkenine aktar.
X:=Y*(Z-T); Z `den T `yi çıkar ve Y ile çarp sonucu X değişkenine aktar.
X:=Y*Z-T; Y ile Z `yi çarp, sonuçtan T `yi çıkar ve sonucu X değişkenine aktar.
#65; A harfi yerine kullanılabilir.
isim:`eren`+`aslan`; isim değişkenine "eren" ve "aslan" bilgilerini beraber aktar.
AD: string[20]; Yirmi karakter uzunluğunda String tipli ad değişkenini oluştur.
Sira:array(.0..9.) of real Real tipli ve on elemanlı sira dizisini oluşturur.
SEPET[1]; Sepet dizisindeki birinci eleman.
Soyad:=`aslan`; Soyad değişkenine "aslan" bilgisini ata.
A=B; A değişkeni B değişkenine eşit mi?
a>b; A değişkeni B değişkeninden büyük mü?
A
a<=B A değişkeni B değişkenine eşit veya eşit mi?
a>=b A değişkeni B değişkenine eşit veya büyük mü?
A<>b A değişkeni B değişkeninden farklı mı?

ön Tanımlı Kelimeler (Reserved Words):

Turbo PASCAL `ın kendi işlevleri dışında kullanılamayacak kelimeleri vardır. Bu kelimeleri bir değişken, sabit, fonksiyon adı veya başka bir şey için kullanamazsınız. Turbo PASCAL büyük/küçük harfe duyarlı olmadığı için bu kelimeleri büyük/küçük yazmak bir şey değiştirmeyecektir.


and
asm
array
begin
case
const
constructor
destructor
div
do
downto
else
end
exports
file
for
function
goto
if
implementation
in
inline
interface
label
library
mod
nil
not
object
of
or
packed
procedure
program
record
repeat
set
shl
shr
string
then
to
type
unit
until
uses
var
while
with
xor
absolute
external
forward
interrupt
virtual
Etiketler: