+ Konu Cevaplama Paneli
Toplam 3 adet sonuctan sayfa basi 1 ile 3 arasi kadar sonuc gösteriliyor

Konu: Fark Edilmeyen Efsane Dil “object Pascal”

  1. #1
    Administrator

    Üyelik tarihi
    Nov 2007
    Mesajlar
    730

    Standart Fark Edilmeyen Efsane Dil “object Pascal”

    { BİRAZ MAZİ, PASCAL'IN ALT YAPISI VE GÜCÜ }
    Sanırım yazım için ilginç bir başlık: "Fark edilmeyen efsane dil". Açıkçası böyle bir başlık atmamdaki amaç, bu dilin hakettiği konumda olmaması ve bundan duyduğum derin üzüntüdür. Sizlere "Object
    Pascal" dilinin güzellikleriyle beraber bu dili kullanan araç ve derleyicileri tanıtacağım ilginç bir yazı ele almak istedim.

    Pascal'ın tarihçesinden falan başlamak istemiyorum. Bu yazıyı okuyan herkesin bunları bildiğini farzederek yazıyı ele alıyorum.

    Birçok kişi algoritma geliştirme konusunda aslında dilin fazla bir öneminin olmadığı, kurgu ve mantığın hazırlanmasından sonra bunun herhangi bir dille rahatlıkla kodlanabileceğini söylemeleri bir noktada doğru olsa da kullanılacak dil de önem arz eder. Neden mi? Rahatlık, kolaylık, okunabilirlik, taşınabilirlik, makinaya hakimiyet... diye uzayıp gidebilir liste.

    Önceleri yapısal programlama ile bir devrim başlamış ve daha rahat kod yazılabilir ve proje geliştirilebilir olmuştu. Bu teknikleri adam akıllı kullanan iki dil vardı piyasada "C ve Pascal". İkisinin de güçleri orantılıydı o zamanlar.(modülerlik ve fonksiyonerlik açısından) Tabi C dilinin makinaya daha yakın oluşu ve sistem programlama için geliştirilmesinden ötürü daha elit kesimce bolca kullanılmaya başlanıldı. Bundan önce işletim sistemi yazımlarında pascal da kullanılıyordu. Meselâ ilk Macintosh işletim sisteminin çoğu TEX Pascal ile yazılmıştır. (bkz
    [Linkleri görmek için üye olmalısınız veya cevap yazmalısınızclick here to register])

    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ü*** 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 şeklinde 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 faklı 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.

    Buradan da anlaşılacağı gibi geliştirilen dillerin de kendince bazı bakış açıları ve amaçları vardır. Pascal dilindeki amaç, okunabilirliğin kolay olması ve daha rahat ve temiz kod yazımına izin vermesidir. Bunlar Pascal dilinin bakış açısı ve dil görüşüdür.

    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 Language (bkz [Linkleri görmek için üye olmalısınız veya cevap yazmalısınızclick here to register]) (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 belki de en büyük
    sorundur.

    Zaman geçtikçe projeler için yazılan kodlarda arttı. Artık daha fazla kod yazılıyordu ve böyle büyük projelerin içinde boğulmak ciddi bir sorundu. Bu yüzden programlama için farklı bir felsefe arz eden
    Object Oriented Programming Türkçesi, Nesneye Yönelimli Programlama(NYP) fikri geliştirildi. 1995'ten sonra Microsoft'un çıkarttığı Visual(Görsel) dil olan Visual Basic ile bu yaklaşımda
    yaygınlaşmaya başladı.

    Diller de artık yazılımcıların ihtiyaçlarını karşılamak için yeni üretilen teknikleri bünyesine katarak gelişimlerine devam ediyorlardı. Bunun sonucu C -> C++, Pascal -> Object Pascal adlarıyla gelişimlerini sürdürmeye başladılar ve bunların yanında C# gibi %100 nesne yönelimli programlama dilleri de çıktı.

    Borland firması 1995 yılında efsane Turbo Pascal'ın Win32 platformlu görsel uygulamasını hazırlamaya koyuldu. İlk başta proje adı Visual Pascal'dı. Daha sonra projenin kod adı olan Delphi adı ile değiştirildi. Delphi 1.0'da firma güzel bir iş çıkartmıştı. Delphi, Pascal dilini temel alan görsel bir RAD aracıydı. Sonraları Borland, daha geniş bir nesne 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. Az sonra
    bunlarada değineceğim.

    (Günümüzde Microsoft 'un gelecek vaadeden C# dilinin baş mimarı Anders Hejlsberg aynı zamanda 80 'li yıllarda büyük başarı sağlayan Turbo Pascal derleyicisini yazan ve Delphi projesi baş mimarı olan bir programlama dehasıdır. 13 yıl Borland'da çalışmış ve 1996 yılında Microsoft'a geçmiştir.)

    Pascal ve C dilleri genel amaçlı dillerdir bu yüzden her tür proje ve algoritma geliştirmeye müsaittirler. İster bu yapay zekâ uygulamları olsun, ister ticarî programlar, isterse de kişisel programlar. Bu dillerle
    saydıklarım çok rahat yapılabilir. Yalnız az önce de değindiğim gibi her dilin bir bakış açısı ve amacı olduğundan farklı amaçlara yönelikte daha farklı diller geliştirmeye devam ediliyor.(Lisp, Prolog... gibi)


    { NEDEN OBJECT PASCAL ? }
    Bunun için bir çok neden var. Şimdi bunları sıralayalım:
    1- Disiplinli ve kurallı bir dil olması: Pascal dili, programcıyı belli bir disiplin içinde kod yazmaya sevk eder. Bu durum hem hata takibini kolaylaştırır hem de okunaklığı artırır. Meselâ kullanılacak değişkenlerin önceden belli bir blokta tanımlanmasını istemesi gibi. Bu noktada diğer dillerden ayrılır. Basic dilinden Pascal'a geçenlerin zorlanmasının da temel nedeni budur. Çünkü Basic dili çok daha
    özgür ve kuralsız bir dildir. Değişken tanımlama yapmadan kod yazımına izin vermektedir. Aslında bu çok kötüdür. Kodlamanın sayısı arttıkça karıştırmalarda bunla orantılı artacaktır. Kod takibi zor
    olacaktır.

    2- Prosedürel ve Fonksiyonel bir dil olması: Yapısal programlamayı içinde barındırması. Bunu takiben bir başka güzelliği de Pascal dilinin prosüdür ve fonksiyonun bariz bir şekilde belirtilmesidir ve fonksiyon içinde fonksiyon tanımlayabilme özelliğinin bulunması. Bunlar C ve Basic'de böyle değildir.

    3- Sembolikten ziyade okunabilirliğe önem vermesi: C dili daha sembolik bir dil olduğundan Pascal'a nazaran daha az kod yazılabilir; ama bu anlaşılmayı ve okunabilirliği zorlaştırmaktadır. Pascal
    dilinin felsefesi buna aykırıdır. Günlük konuşma diline yakın bir dille kod yazımını savunmaktadır. Buna örnek olarak C'deki “{“ işaretinin Pascal'da “begin”, “}” işareti de “end” e karşılık gelmesi gibi.

    4- Hata takibinin kolay olması: Diğer dillere nazaran Pascal'da hata takibi daha kolaydır. Bu da dilin felsefesinden kaynaklanmaktadır.

    5- Genel amaçlı bir dil olması: Pascal yüksek seviyeli bir dil olmasına rağmen içinde assembly kodlarının yazılmasına da imkan tanımaktadır. Bu tür özellikleriyle çok amaçlı bir dil de olduğunu
    söyleyebiliriz. Meselâ en son Delphi derleyicisi Intel x86 komut setlerini tam olarak desteklemekle beraber Intel Pentium® Pro, Pentium III, Pentium 4, Intel MMX,. SIMD, Streaming SIMD Extensions, SSE, SSE2, and SSE3, and AMD® 3DNow! 32 bit inline assembler komut setlerini desteklemektedir.

    6- Modüler olması: Pascal'da uzun kodlar için “unit”ler oluşturularak daha düzenli kodlar yazılabilmektedir. Program içinde bu unitlerin kullanımı için de “uses” ifadesinden sonra kullanılacak uniti yazmak yeterlidir. Böylece uzun projeleri böl-parçala mantığı ile daha düzenli ve çoklu geliştirmeye müsait hale getirilebilmektedir.

    7- Geniş nesne yönelimli programlama desteği: Turbo Pascal 5.5 ile kısmi olarak kullanılan NYP tekniği 1995 yılından sonra Borland'ın, Apple'ın önerdiği (hala bir standart olmayan) Object Pascal taslağını kullanarak Delphi'yi geliştirmeye başladı ve çok gelişmiş bir dil haline getirdi. Delphi'deki NYP'nin diğer dillerle kıyaslanması için (bkz şekil 1)



    Şekil-1
    Resimde de görülmek üzere OOP(NYP) tekniğini en üst düzeyde kullanan dil Delphi'dir.
    (Kaynak: Delphi in a Nutshell- Ray LISCHNER)
    Hatta Borland, Object Pascal'daki NYP ile yazdığı Visual Component Library (VCL) adında bir alt yapı geliştirerek bunu Delphi'ye entegre etti. Şu anda .NET için kullanılan komponent tabanlı diller (C#)
    gibi Delphi'den alıntıdır.

    8- Dilin tip bakımından zengin olması: Pascal strongly typed türü bir dildir. Kullanılacak değişkenlerin önceden tipleri belirlenmelidir. Belirlenecek tipler bakımından da oldukça zengindir. Bu tipler: “char, pchar, variant, string, ansistring, widestring, smallint, integer, word, byte, real, double, comp, int64, cardinal, longword, real48, extended, single, currency, boolean” dır. Bunu göz önüne aldığımızda diller arasında tip bakımından en zengin dil Object Pascal'dır. Bu noktada Basic dili bağayı bir vasat durum çizer. Çünkü bu dilde tip kavramı yoktur. Program içinde bağımsız değişkenler kullanılabilir, böylece Basic dilinde yazılmış programların değişken tipleri, çalışma zamanında tespit edilir. Bu da hız bakımından yavaşlık, kod bakımından düzensizlik, hafıza bakımından da gereksizlik demektir. Çünkü Object Pascal'da

    “Var
    sayac: Word;”

    ifadesi ile sayac değişkeni için hafızadan “0..255” karakterlik yer ayırdığımızı önceden belirtiriz. Bu durum Basic dilinde

    for sayac=1 to 10
    print sayac

    Şeklinde tipi belirtilmeden kullanıldığından çalışma anında belirlenir ve hafızadan ne kadar yer ayrılacağı da muammalı bir durumdur.

    9- Diğer dillerdeki güzellikleri bünyesine katması: Pascal dili Niklaus Wirth'ten bu yana epey bir yol kat ederek günümüze çok gelişmiş bir dil olarak gelmiştir. Bunda Borland firmasının payı çok fazladır.
    Object Pascal(Delphi) adı ile birçok yeni teknikleri bünyesine katan Borland, diğer dillerdeki güzel özellikleri de Pascal'a taşımıştır. En son Delphi 9(Delphi 2005) ile gelen “for...in....do” sözdizimi gibi.


    { GÜNÜMÜZ VE GELECEKTE OBJECT PASCAL'IN DURUMU }
    Günümüz açısından adam akıllı Object Pascal'ın gelişimi 2 taraflıdır.
    Birincisi ”Free Pascal” adında bir grup tarafından geliştirilen çok platformlu Pascal derleyicisi. Bu grup Borland'ın dile kazandırdığı standartları örnek alarak Delphi'ye uyumlu derleyici geliştirmektedir.
    IDE olarakta başka bir grubun geliştirdiği “Lazarus Projesi” vardır. Free Pascal, Lazarus IDE'sini kullanır. Delphi'nin VCL'sini kendine örnek alarak Delphi ile uyumlu geliştirilmektedir. Delphi'deki bazı
    kodları hiç değişiklik yapmadan Free Pascal ile derlenebilir. Free Pascal, Win32-FreeBSD-Linux- MacOsX platformlarında çalışmaktadır.(Ayrıntılı bilgi için bkz [Linkleri görmek için üye olmalısınız veya cevap yazmalısınızclick here to register] ,
    [Linkleri görmek için üye olmalısınız veya cevap yazmalısınızclick here to register] ,
    [Linkleri görmek için üye olmalısınız veya cevap yazmalısınızclick here to register]
    adreslerine bakabilirsiniz.) Lazarus gerçekten component tabanlı bir IDE'dir ve Free Pascal derleyicisini kullanır. En son verdiğim bağlantı adresinden Lazarus'un ekran görüntülerine bakabilirsiniz. Açık
    kaynak kodlu geliştirilmiş olduğundan katkıda bulunmak isterseniz [Linkleri görmek için üye olmalısınız veya cevap yazmalısınızclick here to register]
    adresine uğrayın.

  2. #2
    iskitler
    Guest

    Standart

    Konu açtığınız için teşekkürler HoLyZone...

  3. #3
    Senior Member
    Üyelik tarihi
    Jul 2010
    Yaş
    20
    Mesajlar
    447

    Standart

    PayLasıMlar iciN Tesekkurler

Benzer Konular

  1. mayın tarlası (pascal)
    By blackhummer in forum Diğer
    Cevaplar: 1
    Son Mesaj: 05-07-2010, 11:39 AM
  2. Cevaplar: 0
    Son Mesaj: 11-11-2009, 11:17 AM
  3. PS object pack 10
    By kyerli in forum Photoshop PSD-Photoshop Fon
    Cevaplar: 0
    Son Mesaj: 06-06-2009, 11:03 AM
  4. PS object pack 9
    By kyerli in forum Photoshop PSD-Photoshop Fon
    Cevaplar: 0
    Son Mesaj: 06-06-2009, 11:03 AM
  5. Cevaplar: 0
    Son Mesaj: 09-04-2009, 01:57 PM

Bu Konudaki Etiketler

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok