Elektrik Mühendisliği · Sayı 336 · Ekim 1986

PASKAL: YAPISAL BİR DİLE GENEL BAKIŞ

Mehmet Bodur

Bilgisayar, yazılım ve internet Teknik / bilimsel makale

Yıl
1986
Sayfa
5
Okuma süresi
13 dk
Görüntülenme
0

Konu

Bilgisayar, yazılım ve internet

İlgili: Mühendislik eğitimi

Anahtar kelimeler

  • Paskal programlama dili
  • Niklaus Wirth
  • yapısal programlama
  • derleyici
  • veri tipleri
  • program yapısı

Özet

Yazı, Niklaus Wirth tarafından geliştirilen Paskal programlama dilinin tarihçesini, gramer yapısını, veri tiplerini ve yapısal/modüler programlama özelliklerini örneklerle tanıtmaktadır.

Tam metin

Metin PDF'ten otomatik çıkarılmıştır; tablo, şekil ve formüller eksik ya da hatalı olabilir. Özgün dizgi için PDF'e bakın.

PASKAL; YAPISAL BİR Dili GENEL BAKIŞ

Mehmet BODUR OOTü Elektrik ve Elektronik Müh. Bölümü

1. Giriş

Genel amaçlı bir yüksek düzey prograaİMa dili olan Paskal, 1970'li yılların başında Prof. Niklaus Uirth tarafından düşünül dü. Prof Hirth'in Paskalı geliştir* amacı yazılışların belli bir düzen içinde gerçekleştirmesini, böylece yazılan progrularm yapısal yönden hatasız ve kolay anlaşılır oltasını sağlayacak yeni bir dil oluşturıaktı. Bu dilin kullanııının yaygınlaşabilme si için o zaman kullanılan bilgisayarlara kolayca uygulanacak ve bellekte az yer kaplayacak kadar basit, fakat aynı zaunda hızlı ve veritli olmalıydı. Bu ataçla Prof. Hirth ve C. A. R. Hoare, Zurih'te Eidgenossische Technische Hochschule'de (ETH) bir CDC 6400 bilgisayarda Algol 60'tm yola çıkarak yeni bir dil için bir derleyici geliştirmeye başladılar. Bu çalışma 1970'te düşündükle ri dili tüiüyle gerçekleştiren bir derleyicinin hazırlanıp, de nenmesiyle başarıyla sonuçlandı. Dilin adı, Fransız Mtetatikçi ve düşünür Blaise Paskal'in (1623 1662) adına Paskal olarak konuldu. Bir yıl sonra Belfast Oueen's University'de bir başka grup, aynı dilin derleyicisini ICL 1900 tipi bir bilgisayar için hazırladı. Yeni dilin ilk fornal tanı» 1971'de, seıantik yapısı nın tanımlanması ise 1973'te yayınlandı.

versitelerin çoğunda programlamaya giriş dili olarak öğretilmekte ve Paskal üzerine yazılms pek çok ders kitabı bulunmaktadır. Dil aynı zinanda ticari olarak ta kendini kabul ettirmiştir. Bir çok yazılım fiması Paskalı ticari programlar yazmak için kullanmak tadır.

Metodik programlama özellikleriyle, ve her bilgisayara ko layca uygulanabilmeyle Paskal artık bilgisayar programcılığında FORTRAN ve BASIC gibi çok tanınmış dillerin yanında genel amaçlı, temel yüksek düzey dili olarak yerini almıştır.

2. Paskal Dilinin Yapısı ve özellikleri

Profesör Hirth, Paskal üzerine ilk çal ISMI arından bu yana bu dilin geliştirilme amaçlarını şöyle belirtmiştin a) Programlamayı sistematik temel kavramlara dayanarak öğret mekte kullanılabilecek, bu temel kavramları doğal yapılarıyla içeren bir dil olmalıdır.

b) fjünüaüzde her çeşit bilgisayara kolay, güvenilir, hızlı ve kullanışlı biçimde uygulanabileclidir.

Paskal dilinin tasarlanış amaçlarından kaynaklanan bu özel liklerini incelemeden önce, dilin gramer (syntax) yapıtının çok kısaltılmış bir özetini verelim.

1972 75 yılları arasında Paskal büyük bir gelişte dönemi geçirdi. 1972'de ETH den bir grup, Paskalın gereksiz sayılabile cek, ve bilgisayarın donamı özelliklerine bağlı yanlarını kısıt layan, böylece her makinada uygulamasını kolaylaştıran bir dü zeltme raporu hazırladı. Bu rapora uygun yeni derleyici, 1974 yılında taıanlandı. Paskal P adlı yeni derleyicinin her çeşit bilgisayara kolayca uygulanabilmesi için ilgi çekici bir yöntH denendi. Paskal P derleyicisi, P code adında soyut, yiğit yöne lisli (stack oriented) bir dilde yazıldı. Derleyici, aaac kodu (object code) olarak gene P code üretiyordu. Bu yüzden, herhangi bir bilgisayarda Paskal derleyicisini kullanabilmek için o bilgi sayarda yalnızca P code yorunlayıcısı yazmak yeterli oluyordu. Bu yaklaşıl sayesinde Paskal P bir anda DEC Sisteı 10, IBft 360, Univac 1106 ve benzeri çeşitli bilgisayarlara kolayca uygulandı.

2.1 Paskalın Gramer Yapısı:

i. Program öğeleri:

PROGRAM adlINPUT, OUTPUT); Bildirimler; (Declarations) Bileşik Tümce; (Compound Statement)

Adlar (Name), bir alfabetik karakterle başlayan, içinde boşluk ve özel işaretler bulunmayan alfanümerik karakter dizgi sinden oluşturulan tanıtıcı (identtfier) sözcüklerdir. Programın adı tanıtıldıktan sonra programda veri giriş çıkışı bulunduğu, giriş çıkış anlama gelen input, output sözcükleriyle belirti lir.

Paskal dilinin oluşturulmasındaki temel nedenlerden biri de eğitimde kullanılmak üzere çeşitli dillerdeki ortak sistematik kavramları en basit özellikleriyle, ve en kolay anlaşılır biçimde kapsayan bir dilin gerektesiydi. Paskalın tasarlanmasında bu nokta da göz önüne alındığından Paskal sistematik programlama kavrulanrun öğretilmesinde önemli bir örnek oldu. Bu niteliği, dilin kısa zamanda yayınlarda algoritmaların açıklanmasında kullanılmasını yaygmlaştırdı. 1975'te ACM National Conference'de kurulan "Paskal Kullanıcıları 6rubu"nun üye sayısı 1978 başların da Si ilkede 2000'in üzerine çıktı. Paskal, bugün tanınmış üni

Bildirimler bölümünde, programda kullanılacak her tanıtıcı (identifier) sözcüğün belli bir sıra içinde bildirilmesi veya tanımlanması gerekir. Program son öğesi, program çalışınca yapılacak işlerin yazıldığı bir bileşik tümeldir.

ii. Bildirimler (Declarations):

a. Tümce Başlığı (Label) Bildirimi: Tümce başlığı olarak yalnız bildirilıiş sayılar kullanılabilir.

LABEL Ll, L2, .. Ln

b. Değismlrin (ConstınU) Bildirili: Değistezlr için kulla nılacak tanıtıcıların karsılarına değerleri yazılır.

COHST adi >d t ğ r i ; ad2

c. Tip (Type) Bildirili: Yapısal veya türetilıiş yeni tip tanı tıcılarının tcıel tiplerden oluşturul» bicili bildirilir.

TYPE adi • tip tanıılaıasıl; ad2 « t i p tanıılauıı2;

d. D»9i«km (Vıriable) Bildirili! Progratda kullanılacak bütün

genel (global) değişken adlarını, ve bunların veri tiplerini

bildirıek gerekir.

VAR adi : tip adıl;

ad2 ! tip adı2;

e. I ı I M (Procedure) ve işlev (Function) Bildirin: tsletler;

paratttreler ve genel değişkenler aracılığıyla dejer geçişine

olanak sağlayan adlandırıl»; prograa bloklarıdır. Yapıları prog

raıa çok benzer. U l u , adıyla çağırılınca isleedeki bileşik

tüm islenir.

PROCEDURE işlendi (paraıetre bildirili);

Bildiriıler;

(yerel tanıtıcı adlar için)

Bileşik Tince;

İşlevler (Function), islıvadı ile değer taşıyabilen ve is

leıe benzeym prograı bloklarıdır. Islevadlarınm tipi ve değeri

vardır, işlevdeki bileşik tûtce içinde islevadına değer aktırıl

•ası zorunludur.

FUNCTİON isltvadıtparaıctre bildirili): tip bildirili;

Bildirilir;

(Yrel tanıtıcı adlar için)

Bileşik Tüm;

1 IF «antıkdeyini THEN Sİ ELSE S2

Eğer MntıkdeyUi'nin sonucu doğruysa Sİ, doğru değilse S2 işlenir.

CASE secicideyim OF

değer la, dejerlb ı Sİ;

değer2a ...

: S2;

değefN

: Sn;

END

Secicideyiı'in değerinin sırasıyla hangi tüacelere karşı

lık gelen değerlere uyduğu denetlenir. Uygun değerlerin tüm

leri islenir. Diğer tütceler işlemeden geçilir.

3 FOR skalardeğisken := ilkdeğer TO sondeğer DO S Skalardeğisken'in (taısayı veya sıralı cüıle eleıanları)

ilkdeğer'den başlanarak bireri ik ilerletelerle sondeğer'e kadarla bütün değerleri için S tekrarlanır.

4 «HİLE untıkdeyiıi DO S Hantıkdeyiıi"nin değeri doğru olduğu sürece S tüıcesi tekrarlanır.

5 REPEAT Sİ; S2; ... Sn UNTIL lantıkdeyiıi Sİ, .. Sn tümleri islendikten sonra nantıkdeyiıi'nin değerine bakılır. Değeri doğru oluncaya kadar Sİ .. Sn tekrar islenir,

b GOTO tüıcebaşhğı Bu tünce, prograıın akısını tümbaslığı ile belirtilen tümceye yöneltir.

iii. Tümlr (Statexnts):

T ü m l r , prograıda yapılacak isİMİeri bildirıek için kullanılır. Bu bolünle tinceler S, Sİ, .. 9n gibi kısaltılacak tır.

a. Bileşik Tüeceler (Coıpound Statetents): Birden fazla tümnin (Sİ, S2, .. Sn) birleştirileni için kullanılır.

KB1N Sİ; S2; .. ; Sn; EKD

d. Giriş Çıkış (Input Output) isİMİeri: Veri giriş çıkışı standart i ş l e t i r l e gerçekleştirilir.

REAO veya READLN(deği$kenl, deği$ken2, ... ) «İTE veya NRITELNtdeğrl, değr2, ... ) READ işieti değişkenler* değer okutıak, HRİTE işleıi ise deyi» veya karakter dizgileri gibi değerler listesini standart çıkış birisine yazdırıak için kullanılır. READLN ve HRITELN, giriş çıkış işleıi tanılandıktan sonra standart çıkış birisinde yeni satıra geçilenini sağlar.

b. Değer Aktarıa (AMigmmt) TüKesi: Eşitliğin sağ tarafında

ki aritMtik (Mntık veya başka tipten) deyiı, islıvadı veya 2.2 Paskalın Sistemli Prograılau özellikleri

değişenin değeri eşitliğin solundaki aynı ya da uygun tipten

değişkene aktarılır.

Paskal, sisteıli prograılaıaya yatkınlığını sağlayan çok

Değisktnadı :• deyiı

sayıda denetil tümsi çeşidine sahiptir. Yapısal prograılaıanın teıeli, programları hiyerarşik olarak düzenlemiş tek girişli tek

c. Denetil (Control) Tüecıleri: İstenen tümlerin belli kosul çıkışlı bloklardan veya döngülrden oluştunaya dayanır. Hiyrar

lr altında islemesini ya da islmMccsini denetleyen yapılar şik düzenlemiş bloklar ya biri tüıüyle diğrinin içinde, veya

olufturulıaımı sağlar,

tüıüyle birbirlerinden bağıısız durutda olıahdır. Prograıların

bu stkilde düzenlemesi acık ve anlaşılabilir oltalarını önetli derecede etkiler. Paskalda BEBIN E», İF TOHLSE, NHILEDO, REPEATUNTIL, FORDO ve CASEEND yapısal denetil tüıceleri, yapı sal blokların acık ve anlaşılır biçude birbirinden ayrılııs olarak kullanılıasını sağlar. Paskalda GOTO tüKHi de vardır. Ancak GOTO tüKHi, diğer denetil yapılarıyla kurulan blokların daha anlaşılır oltası sebebiyle pek kullanıltaz. îç içe bloklar dan oluşan bir progru örneği verelit. Bu prograı, bir kişinin haftanın hangi gününde kaçar s u t çalıştığını okuyarak, cmartesi için her s ü t e yarıı saatlik, pazar için ise bir saatlik fazla M U I ücreti üzrinden bir haftalık topla ücretini buluktadır.

PR06RM Ücret UNPUT.OUTPUT);

2.3 Paskalın Hodulr Prograılaıaya Yatkınlığı

Paskalda, progrulari daha küçük progrıt basaıaklarına ay rıştırarak her bir prograı basauğı için bir altprogrn yaztak olanağı vardır. Altprograılar ISIM (procedure) veya işlev (funetion) yapısında olabilirler, I S I N ve işlevler kendi adı, bildiritleri ve tüace btilûaü bulunan ayrı bir progru yapısında dır, âletlerin ve işlevlerin kullanıluıı Paskala blok yapı özelliği kazandırır. Her bir blok içindeki bildirişlerle yeni yerel değişkenlerin kullanıltasına izin verir. Prograıların yuka rıdan aşağıya, teatiden ayrıntılara doğru batauk basaeak alt progratlara ayrıstırılıası hu taşanımı, hM de yazılısını kolaylaştırır. Böyle nduler biçiadc yazılan progratlar, uzun olsalar bile kolay okunabilir ve anlaşılabilir.

CONST Sutucrcti « 200.0; Ssaat bası is ücrctis

TYPE Gun«(PtKi,Sali,Cars,Pers,CuM,Ctesi, Pazar);

VAR Isgunu

:6un;

Toplaıucret, Fazlattsai t REAL}

Issaati ıINTEGER;

FUNCTİON Ücret(KatsayııREAL) ı REAL; SKatsayı adlı grceksayı tipinde paratetresi vars

BE6IN SUcret i»ltvinin bileşik tütcesis Ücreti KatsayıtlssutüSutucrtti;

EM); SUcret işlevinin sonu»

BEBİN ŞPrograt Tûecesinin basış Topluucrrt :• 0; Ekucret :• 0) HRITEUK'Pazartesinden Pazara kadar calisilan'); HRITELNC s ı a t l r i girin.'); FOR Isgunu i» PtMi T0 Pazar DO

BEBIN SFx'un bileşik tÜKisis REMHlssuti); CASE Isgunu OF

Ctni ı Ekucret ı= Ekucrıt + Ucret(0.5); Pazar : Ekucret ı> Ekucret + Ucrtt(l.O); END; SCase için» Toplaflucrttı Tcplaucrıt • Ucret(i.0)| EM); SFor'un sonus Toplaıucretı»Toplatucret + Ekucret; WTELN<'Haftalık Toplu Ücret « Joplatucret); END. SPrograt tüıceıinin sonus

firntk prograıda görüldüğü gibi, sözcükleri bölutek koşuluy la prograıın isten» yerinde istenen likttrda boşluk bırakıak serbesttir. Bloklar arasında boşluklar bırakarak ve iete kalan blokları daha icriden yazıaya başlayarak progm daha kolay okunacak duruM getirilebilir.

2.4 Paskalda Veri Y apıları

Veri yapıları ve veri tipleri acısından Paskal, örnek alındığı Algol 60 ve Algol N'yc gön üstün nitelikler tafir. Paskalda gerctksayı (real), tatsayı (integtr), eantık (boolean) ve karaktr (charactr) oluk üzere dört t e » l standart skalar veri tipi tanıtlıdır. Kullanıcının yeni «kalır veri tipleri tanıılayabilıesi Paskalın kullanıla özel değişik veri tipleriyle donatılabiltesini sağlar. Örneğin

TYPE Sun = (PtesilSali,CarslPers,CuH,Ctesi,Pazar); VAR Isgunu : 6un; bildiriılerinde, önce yeni bir skalar veri tipi olan 6un tanıtlanıştır. 6un tipi, sıralı yedi sözcükten olusturuleustur. Isgunu değişkeni, 6un'ü oluşturan yedi değerden (sözcükten) herhangi birini teesil edebilir. Böylece, prograeda Ucretibul adlı bir ISIM de bildirilıis I M FOR Isgunu ı« PtHi TD CUM DO Ucretibul; IF Isgunutttısi THEN NRITELUCHaftasonu'); Isgunut'Sali; doğru progru tûtceleridir. Paskalın bu özelliğinin uygun secil l i s adlarla kullanılıası, yazılan progratların okunmını olağan üstü derecede kolaylaştırır, üstelik, bu stkilde derleyicinin bu tip skalar değişkenler için yanlış isİMİre izin vertMesi de sağlanır.

Paskalda yeni skalar tipler üretilirken, tanıtlı skalar tiplerin alt erillerinden (subrange) de yararlanılır.

TYPE 6un * (PtMi,8ali,Cars,Ptrs,CuM,CtMi,Pazar)| Haf tasamı • Cttsi .. Pazr; Sinavnotu • 0 .. 100 ;

W Notortalausı : Sinavnotu; Bugün t Haftasonu ;

Bu örnekte, Sinavnotu tipindeki değişkenlerin 0 ile 100 arasında bir tatsayı, Haftasonu tipindeki değişkenlerin ise daha önce 9un tipinin bildiriıindeki skalar erilinin Ctesi'den Pazar'a kadarki değerlerinden biri (Ctesi ya da Pazar) olabileceği bildiriliyor.

Bu durumda, program çalışırktn Bugün Ctesi'den önceki değerleri eşitlik <«), kapsau «, <», >, >«) ve içer* (İN) gibi kÜMİi alacak oluru, değişkenin erit dışı değerinden ötürü prograı hata •antik illetlerinin tanıılanabilıesini Mğlaıaktadır. vererek durur. Alt r i t l i t i p l r kullanmak, hata ayıklama illeti

ni kolaylaştırır.

Paskalda kütük v r i tipi diğr dillrdeki kütük tiplerin*

Daha yüksek düzeyli veri tipleri acısından incelenirse, Algol 60'ın kayıt, cümle, kütük ve göttergc v r i tipleri Paskala genişletilerek uygulanıştır. Kayıt (rKord) veri yapısı, değişik tipteki değişkenlerden diziler (array) oluşturmada kullanılır.

göre sınırlıdır. Kütük Paskalda hr zatın homojen yapılı sıralı v r i dizisidir. Bu dizinin bir anda yalnız tflçon değişkeni (buffr vviable) olarak adlandırılan bir tek elceını kul lanı ta acıktır. Tatpon değişkeni i İ r i g r i kaydınak için BET veya PUT, en basa getirıek için ise RESET veya RENRITE gibi teael i ş l e t i r

TYPE Öğrencikaydi * RECORD

kullanılır.

adi :ARRAYçl .. 20Ç OF CHAR;

yui JINTEGER;

Göstrge (Pointr) v r i tipi, gerçekti diğr yüksek düzey

cinsi:(Kiz,Erkek); no :INTEGER; sini f:1 .. 4;

END; VAR Ogr t Ogrencikaydi;

dillerindeki gibi kullanılıaz. Bu tip, çeşitli zincir yapılı (linked strueture) veriler olusturtak için düşünülmüştür. Örneğin, eleunları birr taısayı ile bir göstrgeden oluşan kayıtlardan tekli zincirlemiş bir liste oluşturıak için şu bildiri» kullanılabilir.

TYPE Sostrge * üEletan;

Bir kayıt yapısında, istenen alana yol adı (path name) verilerek erişilir.

Ogr.yasi ı* 17; Ogr,cinsi t* Erkek;

Eletin » RECORD Siyi : INTEGER; P 16ostrge;

END,

Bu bildirisde 6ostrge, bir sonraki Eletin kayıdınm adresi

Kayıtlar, yeni kayıtların tanıılanıasında, veya kayıtlardan olarak tanıtlandıktan sonra, Eletan kayıdı içinde Sostrge için

dizi oluşturmakta kullanılabilir.

ayrılacak alan da bildiriliştir. Böylece hr kayıttan sonra

TYPE Kayitdizisi > ARRAYçl .. 20C OF Ogrencikaydi;

gelen kayıdın adresi tutulduğundan, bir sonraki kayıda kolayca

VAR Gecenlr ı Kayitdizisi;

erişilir.

: 1HTEBER;

Paskalın en tetel ve en önemli özelliklerinden biri prograı

FOR I :« 1 TO 20 DO READLNI6Kenler.naçIC,6Kenlv.adicIC);

için gereken en uygun vri yapısının yukarıdan aşağıya sistematik bir yapı içerisinde geliştirilmesine olanak sağlaıasıdır. Vri tiplrinin çeşitliliği ve isteğe uygun şekillendirilcbiİMSİ

KÜM (set) v r i tipi, küM ılcHnlarının hr biri bir bite sayesinde progrular daha iyi düzenlenebilmekte, cıbuk anlaşıl karıılık olan bit dizileri olarak grçeklntirilıiştir. Böylece makta ve gerekirse kolayca değiştiril tektedir.

Kûıe tipinde bir değişkenin değeri, bir ikalar tip erilinin

(ringe) herhangi bir altküMsi olabilir.

TYPE Bun « (PtNi,Sali,Cars,Prs,CuH,Ctesi,Pazar); 2.5 Diğer özellikleri

Bunler • SET OF Sun;

VAR Zorgunler, Vriıligunlr,

İçerdiği denetil yapılarına ve v r i tiplrine ek olarak

İyigünler, Kotugunler : Günler;

Paskal, progratlata öğrenitinde hst kavratsal, net de uygulan yönünden önetli olan bir çok özellik taşımaktadır. Bunlar arasın

Zorgunler ı »ertesi, CuaaC;

da işlevlrin birbiri içinde ardışık (itrative) kullanıla

V r i t l i g u n l r ı s çCars, P r t , CUHC;

bilıesi, önceden drlenıiş işlevlrin prograılara eklenebiltesi

lyigunler ı« Vcriıligunler • Zorgunler; Sarakesitş

(linking), işlev ve işlemlerde değr ve değişken paratetre çeşit

Kotugunlr t Zorgunler Vriıligunlr; Sfarkş

leri (cali by value, cali by refrence), işlev ve işlet isiıle

Bu örnekte, Bunler tipindeki değişkenler, bellekte yedi bitlik rinin paratetrik kullanılabileni, bildirilirin genel ve yerel

bir dizi olarak tutulacaktır. Zorgunler 1000100 dizisi, özellikleri unutulması gereken önemli kavrulardır. Mgol 68

Veriıligunler 0011100 dizisiyle saklanacaktır, lyigunler, Verir veya PL/l'ın yanında Paskalı kapsadığı kavraılar acısından olduk

ligunler ile Zorgunlr'in arakesiti olan OOOOlOO'diziıidir. Kotu ça basit bir dil olarak yoruılatak tutkundur. Paskalın fortal

gunler ise Zorgunler'den Vcriıligunler'deki eleaanların çıkarıl semantik tanımlaması yalnızca 26 sayfaya sığmaktadır. Bu biçimde

Msıyla 1000000 olrak bulunur. Bu yaklaşıl, küM değişkenlri. tat {orıal tanıt, K. Jenten ve N. Hirth'in Pascal User's Hanual

trnınit birini» W, fark { ), arakesit (*) küt* isimleriyle and Report adlı kitabında bulunmaktadır.

3. Paskalın Bilgisayarlara Uygulanın

Paskal dilinin basitliği, onun tasarlanışında ikinci amaç olan tüt bilgisayarlara kolay ve veriıli biçilde uygulanabilmesi acısından önem taşıyordu. CDC 6400'de yazılan ilk Paskal derleyicileri yaklaşık onbin assetbler satırından oluşuyor ve bellekte 40 kilobytc'lık yer kaplıyordu. Bu derleyiciler ortalama saniyede 80 progru satırını derleyebiliyordu. Paskal 2'nin derine hızı, Algol 68'e göre hemen heten yüzde 45 daha fazlaydı.

Paskal derleyicilerinin bu kadar küçük yere sığabilmesi ve bu derece verimli çalışabilmesi, Paskal dilinin cok temel sayıl mayacak, yi da uygulamada asın yer gerektiren bazı kavramlar dışlanarak sağlanmıştır. Bunlardan en önemlileri:

1. Bercek Blok Yapısı: Algol 68 ve PL/1, gereken veri yapılarının herhangi bir blok içinde bildirilebilmesini desteklerken, Paskalda yerel değişmez, tip ve değişken bildirimleri ancak program, işlev veya işlem bloklarının (adlandırılmış blokların) başında yapılabilir.

2. Dinamik Dizi Kullanımı: Paskalda bir dizinin boyutlarının alt ve üst sınırlan tip bildiriminde açıklanmak zorundadır. 6u yüzden dizinin boyutlarını değiştirebilmek için programın değiştirilerek yeniden derlenmesi gerekir. Paskal, program çalışırken boyutları değişebilen dinamik dizilere izin versez.

3. Kalıcı Blok Değişkenleri {m variables): Paskal, Algol'daki yerel değişkenlerin her çağrılışlarında eski değerinden başlama özelliğini desteklemez.

4. Derleme Sırası Makroları: Paskal, Algolda olduğu gibi derleme sırasında makro tanımlama yapılmasını desteklemez.

Diller ve dil tasarımı üzerine çalışan uzmanlar, dilden hangi nedenle çıkarılmış olursa olsunlar bu çeşit eksikliklerin dilde bir boşluk yarattığını ileri sürmekteler. Bu görüşler Paskalın çeşitli amaçlara dönük yerel uzantılarının geliştirilmesine neden olmuştur. Deri i toplu yapısı nedeniyle Paskal derleyicileri değiştirme ve eklemelere uygundur. Paskala yapılan eklenti ve değişikliklerin başlıcaları şunlardır:

10. LABEL ve BOTO'nun kaldırılması; 11. Kanusıkuyı, dizgi (string) gibi tk t m l veri t i p l r i ; 12. üst alma I Ş I N I ;

Bu çeşit yerel pek cok eklentiler yapılmış olması, değişik yerlerde geliştirilmiş Paskal yazılımların ortaklasa kullanımını engellemektedir. Paskal dilinde çeşitli değişiklikler yapılmış olması, Paskal kullanıcılarının genel ve ortak bir dilde anlaşmalarını ve bu yönde örgütlenmelerini zorlaştırmaktadır. Pek çok küllinin, dilin tanımı olarak 1972'dm yayınlanmış olan düzeltilmiş raporu kabul etmektedir. Fakat gelişmeler, bu rapordaki formal yapı ile kullanımdaki genişletilmiş Paskal derleyicileri arasındaki farkların giderek arttığını göstermektedir.

4. Sonuç

Paskal, ortaya çıkışından bu yana bilgisayar dünyasına önemli etkilerde bulunmuştur. Bu dil, sistematik program yapısı oluşturmaya yönelik kavramlara sahip olması, ve geniş veri yapısı olanakları ile diğer yüksek düzey dilleri arasında önemli bir boşluğu doldurmuştur.

Paskalın her bilgisayara kolayca uygulanabilmesi, bu dilin çok kısa bir sürede yaygınlaşmasını sağlamıştır. Modüler ve sistematik programlamaya yatkınlığı, Paskalın programlama eğitiminde örnek olarak verilmesini, ve yayınlarda algoritma açıklama dili olarak yaygınlaşmasını sağlamıştır.

Bütün bu nitelikleriyle Paskal artık tanınmış t m l yüksek düzey diller arasında yer almıştır.

Bu yazı, 6. Kchael Schneider'in Computer dergisi Nisan 1979 sayısındaki "Pascal: An Overvie»" yazısından yararlanılarak hazırlanmıştır.

1. llkdeğer aktarma bildirimi; 2. CASE tümcesi için kullanım türü belirleyicisi; 3. Giriş çıkış tümcelerine formatlı kullanım yöntemleri; 4. Dinamik dizi parametreler olanağı; 5. Yapısal değişmez olanağı; 6. işlem ve işlevler için kalıcı blok değişkenleri; 7. READ/HRITE işlemlerine ek özellikler; 8. Sırasız erişimli ve indeksi i sıralı kütük kullanımı; 9. Yerpaylaşımı (över 1ay);

KAY NAKLAR:

1. D. Cooper, H. Clancy; "Oh Pascal!", H.H. Norton t Company Inc.;NeKYxk, 1974

2. Findlay Hilliam; "Pascal, An Introduction to «ethodical Programming", Computer Science Press, Inc.; Haryland, USA;197B