H A N G İ P R O G R A M L A M A D İ L İ ?


 


Bilgisayar kullanıcılığı bugün ulaştığı kolaylık ve sağladığı çekici avantajlarla öğrenilmesi zevkli bir meşgale haline gelmiştir. Üstelik kişinin hem kendisine hem de ülkesine gelecek vaat etmektedir. Zira bu çağdaş kağıt-kalem-kitap ile hem daha çok bilgiye daha çabuk erişilmektedir. Çünkü bilgi üretirken bilgi cihazlarımız olan zekamızı ışık hızlı işlemci ile ivmelendirmekte ve hafızamızı atomoik hacimli bellekle desteklemektedir. Böylece kişi bu kompleks aracın sunduğu zengin kaynaklarla daha yüksek bir başarı gösterecek ve bol verimli sonuçlar elde edecektir.

Bunun için üretimden tüketime, eğitimden yönetime kadar bütün etkinliklerde, yiyim den yönelime kadar bireyin bütün süreçlerinde bilgisayarın yeri giderek artarken onunla ilgilenmek hatta tanımaya daha ilerisi onu kullanmaya çalışmak insanımız için daha zorunlu hale gelmektedir. Bu işin sonuncusunu bilgisayarı kullanmak konusunu ele alarak bilgisayarla bu seviyede ilişki kuracaklara yardımcı olmak üzere bazı temel bilişim bilgileri aktarmak istiyoruz. Ta ki bilgi toplumuna bir katkı olsun.

Bilgisayar ve (Computer), kullanıcısı (User) şu iki kavramla sürekli bağlantılıdır. Donanım (Hardware) ve Yazılım (Software). Böylece bilgisayar ve kullanıcısı ile donanım ve yazılım arasında oldukça kompleks çok-yanlı etkileşim başlar. Biz bu “pozitif - inter-aktif” DÖRT KUTUB’tan yazılımın bir parçasını teşkil eden programcılık / program yazılımı hakkında bir kanaat verecek özetler yapmaya çalışacağız.

Önce DONANIM hakkında özet bilgiler vermek istiyoruz. Donanım bilgisayarın elle tutulan ve kağıt - kalem yerine geçen somut nesneler yanıdır. Bilgisayar denilen cihaz, sanki teknolojimizin ortaya koyduğu iletişim aletlerin toplamından ibarettir. Saatten daktiloya hesap makinesından ekrana kadar bütün elektronik makine parçalarından oluşan süper elektronik bir cihazdır. 1970’lerde yaygınlık kazanan ELEKTRONİK hesap makinelerinin denetlenebilir hale getirilmesinden sonra ortaya çıkan gelişmiş bu iletişim aygıtı iki ana birimde yapılaşır: Birincisi bilgilerin işlendiği merkez birimler; ikincisi ham bilgilerin merkeze iletildiği ve işlenilmiş bilgilerin dışarıya gönderildiği çevre birimleri.

MERKEZ BİRİMLERİ, Ana kart üzerine yerleştirilen (processor/mikro işlemci)denilen özel bir entegre devre içeren merkezi işlem birimi (CPU) ve rom-ram bellek (memory) ile bunlar arasında iletim ve denetim göreviyle ortaçlık ve yardım işini üstlenen bazı birimlerden oluşur. Merkezi birimler bilgisayarın beyni ise, CPU (Central Processing Unit) bilgisayarın tüm işlemlerini yöneten beyninin çekirdeğidir.

CPU’ler, PC için intelin ürettiği 8086, 286, 386, 486 ve 586 (Pentium) adlı giderek gelişen kibrit kutusu çapında bir alanda bir kaç milyon transistor içeren ve bir saniyede yüz ila iki yüz milyona yakın işlem yapabilen veri, adres ve kontrol yoluyla organize edilmiş mikro yapıdır. Örneğin pentium üç milyon transistör taşır.

ÇEVRE BİRİMLERİ ise, klavye (keyboard) , mous (fare), tarayıcı (scanner) gibi girdi ile ekran (screen), yazıcı (printer), çizici (plotter) gibi çıktı birimlerinden oluşur. Bu girdi çıktılar da sanki bilgisayarın gözü kulağı, eli ayağıdır Bunlardan başka bu cihazlar ile merkezi birimleri arasındaki bilgi akışını sağlayan ve kapı ve köprülük işlevi bulunan I/O (AYO) kartı ve EKRAN kartı ayrıca taşınır disket, taşınmaz harddisk ( bilgisayarın geçici elektronik belleğini ek ve yardımcı olan manyetik kalıcı bellekler ) ve sürücüleri gibi bazı donanımlarda vardır. Yardımcı bellek ve kartlar, ana kartla birlikte kasa denilen bir kutu içine yerleştirilmiştir.

Devletlerin iki bloğa ayrılması gibi komputerler de IBM (veya IBM uyumlu OEM=toplama) bilgisayarlar (kısaca PC’ler) ve Apple bilgisayarlar (Macintosh kısaca MAC’lar) olarak iki ana gurupta toplanır. Çünkü PC’ler ve MAC denilen makinelerin birinde çalışan donanım diğerinde çalışmaz. Çünkü ilki İntel’in (x86) diğeri Motorala’nın (680x0) işlemcisiyle yani farklı beyinlerle çalışırlar. Sanki biri liberal demokrat öbürüsü sosyal demokrat kafa taşır. Bizim dünyamız kendi kafasını yapıncaya kadar bu ki bloğun donanım ve yazılım bağımlısı olarak sömürülmeye ve kullanılmaya mahkum görünüyor.

YAZILIM’a gelince: Yazılımın bir bölümü; bilgisayarı yöneten komutlar, bunlardan oluşan programlar yani bilgisayarları çalıştıran işletim sistemi programları, bunları tamamlayan uygulama programları ile kullanıcı programlarıdır (SİSTEM YAZILIMI).

Yazılımın diğer bölümü ise bu programları meydana getiren programlama dilleri ve bu dillerin çeviricileri ve editörleridir (PROĞRAM YAZILIMI).

Şimdi biz bu yazıda programlama dilleri hakkında bir fikir verecek seviyede PROĞRAM YAZILIMI’NI kısaca anlatacağız.
 
 
 
 

A-)PROGRAMLAMA DİLLERİ

Proğram yazmada kullanılan, kendine ait özel komutları ve kuralları olan yönteme programlama dili denir. Programlama dili önce makine dili seviyesinde başlamış daha sonra kolaylaştırılarak insan dili seviyesine yükseltilmiştir. Makine dili olan ASSEMBLY dili (Low level) düşük seviyede zor bir dildir. Bunun için insanların kullandığı dile benzer (High level) yüksek düzeyde kolay kullanımlı diller ortaya çıkarılmıştır. Ancak bu yüksek seviyede dillerle yazılan programların çalıştırılabilmesi için makine diline çevrilmesi lazımdır. Bu tercüme (çeviri) işi Complier (Derleyici) proğram ya da İnterpreter (yorumlayıcı) proğram vasıtasıyla yapılmaktadır.

Programın yüksek seviyeli komutlarla yazılmış haline KAYNAK (source) proğram, makine diline çevirilmiş haline de NESNE (object) proğram denir.

Kaynak programın kodlarının nesne proğram kodları haline getirilmesine çevirim denir. Bu çevirim (TERCÜME) işinde iki yöntem vardır:

a-) Derleme (Complier)

Derleyici proğram, yazılan programın tüm kaynak kodunu alır ve bir seferde tamamını nesne koduna tercüme eder. Çevrilen nesne kodu son bir işlemle BAĞLAMA (Link) proğram vasıtasıyla bağlanarak yüklenebilir ve çalışmaya hazır hale getirilir.

Derleyicilerin avantajı hata bulma ve düzeltme (debug) işi ile derleme işinin bir arada yapılması sebebiyle hızlı çalışmasıdır. Dezavantajı hem kaynak hem nesne kodunu birlikte bulundurduğu için yer sıkıntısı çekilmesidir.

b)Yorumlama (İnterpreter)

Derleyicide çevirme ve uygulama toptan yapılırken yorumlayıcıda parça parça yapılır. Yorumlayıcı bir seferde bir tek proğram ifadesini alır. Sonrakine geçmeden satırı çevirip uygular. Bu yüzden hem hata düzeltmede uygun bir ortam hem de proğram düzenlemede kolay bir kullanım avantajına sahip olur. Ancak her seferde tekrar yorumlamak zorunda kaldığından bu seferde hız düşer.

Derleyici veya yorumlayıcıda kaynak kodundan nesne koduna çevrilen proğram “executable” yapılmıştır. Böyle tamamen makine koduna çevrilen exe proğram yada exe dosya, programlama dilinin çevricisinden bağımsız olarak herhangi bir makinede çalıştırılabilir hale gelmiş demektir.

B-) PROĞRAMCILIK

Bilgisayarı yönetmek ve ondan yararlanmak isteyen bilgisayar kullanıcılarının önünde EDİLGİN ve ETKİN tutumu içeren iki yol vardır:

Ya başkalarının hazırladığı işletim sistemleri ve uygulama (paket) programları yardımıyla dolaylı iletişim kurmak. Bu hazır yazılımı PASİF olarak kullanma mesleğine işletmenlik denir

Ya da programlama dillerini öğrenmek koşuluyla talebine uygun programı doğrudan kendisi üretmektir. Böylece amacı doğrultusunda uygulama programları geliştirmek, yeni kullanıcı programları yaparak bunlardan yararlanmaktır. Kullanıcının AKTİF olduğu bilgisayarla doğrudan iletişim kurduran bu yola da programcılık denmektedir.

Bilgisayarı işletim sistemi yardımıyla kullanmak ve yararlanmak çok zor bir iş değildir. Fakat programlama dilini öğrenerek programcılık yapmak, işletmenlik kadar kolay olmasa da başarılamayacak bir meslek değildir. Sayıl (matematik) temeli olanlar işletmenliği öğrenmek için harcadığı zaman ve para kadar bir harcama yapsa onu da ana hatlarıyla öğrenebilirler. Fakat güç olan bilgisayar işlemlerinin arka planı olan programcılığı öğrenmenin önemini ve değerini kavrayarak bu işe girişmektir. Ancak bu girişi yaptıktan sonra işletmenlik ya da programcılığı geliştirmek kişinin kendisine kalmış bir seçenektir.
 
 

Programcılık FAAL olarak makine ile doğrudan iletişim kurmamıza ve böylece onu işletmekten ileri daha derin bir seviyede yönetmek ve kullanmak ve böylelikle onu istediğimiz gibi biçimleme ve ondan yüksek seviyede yararlanma imkanı veren bir bilgi-işlem mesleğidir.

Halbuki işletmenlikte biz MÜNFAİL olduğumuzdan bizim ile bilgisayar arasına giren işletim sistemi ve paket proğram yazılım ve donanımı dilediğimiz gibi kullanıp istediğimiz hedef ve amaçlara ulaşmamızı engelleyebilir.

Oysa programcılıkta kendi ihtiyacımız doğrultusunda programımızı yapabiliriz. Bu programla istediğimiz diyagramı oluşturarak amacımıza uygun menü elde edebiliriz. İşimize uygun sistem üretebiliriz. Daha etkin olarak daha büyük işi daha yüksek başarı sağlayabiliriz.

C-) PROĞRAMLAMA *

Programcılığı kısaca anlattıktan sonra “bu işin konusu olan ‘Proğram lama’ nedir? sorusu gündeme gelecektir. Programlamak hem düzenleme (tanzim) hem değerlendirme (takdir) gerektiren mantık ve iradeyi içeren bir yeteneğimizdir. Proğramlada genel anlamıyla önceden zamanlama işi ve önceden gündem belirleme etkinliğidir: Fransızca kökenli “programme” kelimesi Türkçe Sözlükte “Belirli şartlara ve düzene göre yapılması öngörülen işlenlerin bütünü”olarak tanımlanmaktadır.

Pro:ön gramme:söz-iş-dil-imge terimlerinin bileşmesinden oluşan bu sözcük bu genel anlamından başka KADER mecazi manasında önlem alma (tedbir) öndem ve yön verme (tevcih) öndüzenleme kavramlarını çağrıştırmaktadır.

Bu takdir ve kader manasına gelen proğramlamanın bilgisayar yazılımı terimi olarak özel bir tanımı daha vardır. Bilişim alanında kullanılan mana sı ile PROĞRAMLAMA, herhangi bir proğramlama dilini kullanmak suretiyle donanım aracılığı ile DİYAGRAMLAR yani sözel yada sayıl işlem yapmaya elverişli menü, kutu, pencere gibi grafik ögelerinin TASARLANMASIDIR. Görülüyor ki bilgisayarın olaganüstü işlerinin arka planında giderek gelişen proğramlama var, proğramlamanın içinde binlerce insanın zekası ve hafızasının bileşkesi ile azim ve gayretinin yüzyıllarca oluşan birikimi bulunmaktadır.

Herhangi bir proğramlama dilini öğrenirsek basit işlerimiz için kolay proğramlar yapılabilir. Ancak amaç ve hedefelerimiz geliştikce ve genelliştikçe bu ögelerden oluşan editör gibi yazılım örgünleri oluşturmak ve bu editörlerin geniş bir komplekesi olan işletim sistemlerini yapmak söz konusu olunca proğramlama uzmanlığı ve mehareti gerektiren bir sanat olur.

Ancak ister basit ister kompleks olsun yapılan işin özü değişmez: Kullanıcı “Proğram” ön-işi (tasarım-suret) ile Makinada “diyağrafi” ard-işi (biçim-şekil) oluşturur.

İnsanın dilinin, düşüncenin yani proğramın tasavvurunu ekranın ışık çizgileriyle şekillendirilmesi, bu şekillerin akıllı, canlı ve yararlı hale getirilmesi yani diağrafiye dönüştürülmesi işi proğramın mahiyetini teşkil eder. Burada bilgi ve söz işlenmekte ve işletilmektedir. Buna bilgi-işlem adı verilmekter.

Bilgi-işlem

geniş anlamıyla

HAD-SURET görüsünün

ve

HAT-ŞEKİL verisinin
 
 

birbirini besleyen

birbirine dönüşen

biribirini geliştiren

PRO-GRAMİK DİA-GRAFİK

eşzamanlı arayüz ve

ard zamanlı ayokapı

etkinlikleridir.

Eşzamanlı işlemci-bellek düşey ekseni ile ard zamanlı girdi-çıktı yatay ekseninin yani dört ucun interaktif etkileşimi; bilgi-işlemin temel yapı ve işlevlerinin oluşturur. Aslında proğramlama ise bu etkileşimin yatay ekseninin ön tarafıdır ve kullanıcının elinde bulunan etkin bir bilgi-işlem aracıdır. İnteraktif dört uçtan bu kullanıcı ucu ve proğramlama öylesine etkin ve önemlidirki biz bilgi işlemi proğramcılıkla özdeşleştirebiliriz.

Proğramcılığı geliştirmedikçe bilişim ve bilgisayar savaşını kazanmamız mümkün değildir.

Mesela DOS işletim sistemi çok geniş kapsamlı genel bir proğramdır. Çok sayıda ve çok çeşitli özel proğramlardan oluşmuş çok kompleks bir proğramlar kümesidir. İşte bu proğram ile Amerika bilişim eğemenliğini buna bağlı olarak sömürüsünü sürdürüyor.

Bir proğramlama dili yapılan bu proğram ön-çalışmaları, dosyalar halinde saklanırlar.Bu proğram dosyaları ise computerde mevcut yazılım ve donanımın anlıyacağı komutların bir bütünüdür. Komutlar, makinaya işlem yaptıran kod-buyruklarıdır. Çünkü bu komutlar makinanın anlıyacağı kodlarla proğramlama dili tarafından oluşturulmuşlardır.

PROĞRAM bu kod-buyruklarla ilişkilendirilmiş komutların başı ve sonunun belirlenerek denetlenmesi ve sıraların tasarlanarak düzenlenmesinden oluşur.

Proğramdaki bu oluşum; gerek donanımdaki elektronik ve magnetik süreçlerin fizik yasaları ve gerekse yazılımdaki denetleme ve düzenleme etkinliklerinin mantıki ilkeleri ile gerçekleşmektedir.

Bu da gösteriyor ki proğramcılıktaki belirleme ve tasarlama hiç şüphesiz ilmi ve mantıki bir temele dayanmak zorundadır. Donanımın temeli olan emprik/kevni olgular ile yazılımın özü bulunan lojik/akli kuralları nazara alan bu zihni formasyona ve düşünce disiplinine proğramlama mantığı adı verilmektedir.

Ancak hemen belirtelim ki proğramlamanın mantığını elde etmek süper zeka ve olağanüstü çaba gerektirmez. Bunu edinmenin ilk şartı her işte olduğu gibi başlangıçdaki zorluğu yenecek merak ile sonra giderek kolaylığı getirecek olan sürekli uğraşmak ve alışmaktır. Merakı motive etmek ise işin kadrini önemini ve değerini bilmekten geçmektedir.

Eğer merakımız yoksa, bilgi işleme olan ihtiyacımız henüz doğmamış ve bu çağdaş kağıt-kaleme olan lüzumu duymamışız demektir. Bu en hızlı bilgi aletine başvurmayan kişinin ve toplumun gücü ve başarıyı kaçırması ise kültür yarışı ve uygarlık savaşını kaybetmesi ile eşdeğerdir.
 
 

D-)PROĞRAMLAMA

MANTIĞI

Bilindiği gibi insanların düşünme aygıtı olan MANTIK ortak ,fakat konuşma aracı olan LİSAN ayrıktır. Herbir millet kavram ve düşüncelerini kelimelere dökerken farklı terimleri/simgeleri ve ayrı söz-dizim ilkelerini kullanır. Yani adlama ve anlatmaya ilişkin sentaktik yapı değişebilir. Fakat bütün insanların anlayışı ortak özdeşlik ilkesine göre işler. Yani anlama ve kavramaya ilişkin semantik yapı müşterektir.

Her ne kadar insanları kalbleri ve inançları farklı; sözleri ve sözdizim ilkeleri değişik isede akılları ve bilimleri ortak bir mantık temeline dayanır. Aynen öyle de herbir proğramlama dilinin ayrı ayrı sözleri ve söz dizin kuralları özel olduğu halde hepsinin ortak olan bir düzeni vardır ki bu genel düzenin mantığına proğramlama mantığı denir. Bu mantık kavranılmadan proğramlama dili verimli kullanılamaz dolayısıyla iyi bir proğramcılık yapılamaz. Fakat şu var ki proğramcılık mantığı özel bir ilim disiplininin konusu olmaktan ziyada uygulama ile kazanılan bir beceridir. Bu mantık her hangi bir proğramlama dilinde çalışıp uzmanlaşırken elde edilen bir alışkanlıktır. Bu meleke ve mahereti elde ederken PROĞRAM MANTIĞI’nın iki kanadı olan KOŞUL BİLGİSİ ile SAYI BİLGİSİ yanında istidat ve tecrübe isteyen bir sanat olduğu da unutulmamalıdır.

Demekki yaratılıştan bize mevcut olan bu mantık; istidat, ilim ve tecrübe ile bir meleke, maharet ve sanat haline getirilebilir. Yeterki onu açığa çıkarakak bir merak ve gayret ile desteklensin.

Proğramı koşullandırıp biçim tasarlamada koşul bilgisi olan MANTIK (LOGİK) ve tasarımı işlemlendirip içerik belirlemede sayı bilgisi olan ARİTMETİK bizim TEMEL yardımcılarımız olacaktır. Ancak sadece mantık ve matematik bilgisi yetmez, bu temelleri tamamlayacak bazı özelliklerin bulunması bu alt yapının daha yetkin çalışmasını sağlar. Proğramın biçiminin çizilmesinde mantık kullanılırken sezgi yeteneğimiz ve içeriğinin doldurulmasında matematikten istifade ederken özgün niteliğimiz bizi verimli en kısa yola ulaştıran YARDIMCI araçlarımızdır. Her ne kadar lojiko-matematik temellere dayanmadan proğram sağlıklı oluşamaz. Ama ayrıca mantık ve matematiğin tümel ve nesnel boyutlarına sezgi ve özgünlüğün kişisel renkliliği ve zenginliği katılmadan yüksek bir başarı kazanılamaz. Başka bir ifadeyle kıvrak zekanın esemelerinin akımları olan akıl yürütmelerimiz en kısa yolu bulmadan ve derin ilham esintilerinin işlemleri olan sezilerimiz en verimli sonuca ulaşmadan bilgisayarın beyni olan mantıki ve aritmetik işlemciden yeterince faydalanamayız.

Ama şunu da unutmamalı ki bir şeyi iyi kullanmanın yolu o şeyi tanımadan ve bir işi iyi yapmanın yolu da o işi bilmeden geçer. Bunun için zekanın ön şartı mantık ve ilhamın alt yapısı hazır bilgi olmalıdır. Her ne kadar doğuştan ve yaratılıştan içimize konulmuş olan mantık için mantık ilmini okumak gerekmez (gerçi öğrenilmesi düşünceye disiplin ve düzen verir) ise de özellikle matematik iyi bilinmeli ve bilgisayar iyi tanınmalıdır.

İşte amaçlarına erişmek için araç edinmeye, kaynakları işlemeye uğraşan ve bunları milletini yükseltme yönünde çalıştırmayı ödev bilen bir kullanıcı bu araç ve kaynakların en başında bilgisayar gereksinimi ve bilgi-işlem mesleği olduğunu bilmelidir. Bunları kendisine kazandıracak eğitim ve disiplin elde ettmek için çok çaba harcayıp bütün imkanlarını seferber etmelidir. Bunun için nesnel mantık ve matematik disiplini verecek alışakanlık ve alışkanlığını kazandıracak hafıza eğitimini coşkulu hale getirmek lazımdır. Keza öznel zeka ve ilham pırıltısı doğuran yetenek, deneyim ve becerileri edindirecek çalışmaları çekici hale getirilmelidir. Bu işin önemi ve değeri halka anlatılabilirse proğramcılığın motoru olacak coşku ve gücün dayanağının, bitmez azmin ve yılmaz sabrın bu ülkenin bilgilenme açlığında ve çalışma gereksiniminde bulunacağı inancındayız. Zaten dünya ve işleri onu bu işe mecbur edecektir.

E-) PROĞRAMLAMA

Bu yazıda “yazılım bağımlılığı”nı azaltmak için etkin proğramcılık mesleği özendirilmek istenilmiştir. O sebeble genel olarak bu işin nasıl yapıldığının kısaca anlatılması hiç proğramlama uygulaması olmayanlar için gereklidir.

Proğramlamanın hazırlık ve uygulama olmak üzere iki dönemi vardır:
 
 

Hazırlık dönemi de proğramlama mantığı ile gerçekleştirilen “tasarlama” ve tasarlamanın proğramlama dilinin terimleri ile ifadelendirildiği “kodlama” aşamasında oluşur. Böyle proğramlama;

I-) tasarlama

II-) kodlama

III-) uygulama

olmak üzere üç bölümden oluşur.

I-) TASARLAMA

Proğramlamanın hazırlık döneminin ilk aşaması, makinaya yaptırılacak işleri anahatlarıyla tasavvur etmekdir. Proğramlanacak işin sıralanarak düşünülmesi ve işlem safhalarının belirlenmesidir. Bu bölüm Kağıt üzerinde, kalemle yapılan bir Algoritma ve Akış Şeması çalışmasıdır.

Bunlar bir günlük çalışma proğramı yapıyor gibi gerçekleştirilecek işlerin yukarıdan aşağıya alt alta zamani ve mantıki bir düzen içinde dizilmesinden başka birşey değildir.

İlk başlarda oldukça karmaşık gibi görünen bu işin aslında sayaç, katlama, koşul ve sonuç işlemlerinin mantıki bir kombinasyonu olduğu zamanla görülecektir.

Tasarlama, ister bilgisayar proğramı olsun ister insanın kendi proğramı bulunsun hertürlü proğramlama sürecinde gerçekleştirilen yapılacak işlerin sırasının belirlenmesi işleminden ibarettir. Ancak burada bilgisayar proğramı yaparken işlemler daha ayrıntılı sıralanır ve işlem öğeleri aritmetik bir nicelikte kesin olarak tanımlanarak içerik belirlenir.

ALGORİTMA, işlemlerin yukarıdan aşağıya teker teker Mantıki Biçimde sırasıyla dizilerek Tasarlamasıdır.

Mesela: sıfır sayısı girilinceye kadar (P:pozitif) ve (N:negatif) sayıların toplamını yazan proğramın algoritması;

s 1 başla

s 2 taşı Ntop=0 Ptop=0

s 3 Al sayı

s 4 sayı=0 ise git s ,,,

s 5 sayı > 0 ise taşı Ptop= Ptop+sayı

s 6 sayı < 0 ise taşı Ntop= Ntop+sayı

s 7 git s 3

s 8 yaz “Pozitif Toplam= “, Ptop

s 9 yaz “Negatif Toplam=“, Ntop

s 10 dur.

şeklinde yazılır.

AKIŞ ŞEMALARI ise standart şekiller (kutular) içinde işlem öğelerine Aritmetik İçerik vererek sayısal terim ve formüller ile tanımlanıp Belirlenmesidir.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

başla

Ntop=0 Ptop=0
 
 


oku sayı




sayı > 0
 
 
 
 



 
 
 
 
 
 
 
 
 
 

Bu düzenlemelerin sıksık yapılıp uygulanması proğramcıda, proğram mantığı alışkanlığı doğuracaktır. Burada birincisi yani işlem sıralarının koşullu önermelerle birbirine bağlanması koşul bilgisini(mantık), ikincisini yani sıralanan işlemlerin sayısal değerler halinde anlatımının sayı bilgisini (aritmetik) gerektirdiğini tekrarlayıp bunun da normal bir lise mezunun rahatça yapabileceğini belirtmek isteriz. Sayısal bir temel varsa bu daha da kolay olacaktır. (?) ............
 
 

II-) KODLAMA

Proğramlamanın hazırlık döneminin ikinci aşaması, düşünülen ve kağıt üzerinde algoritma ve akış şeması ile tasarımı yapılan proğramın, bir proğramlama dili ile anlatımı kodlamasıdır. Kodlama, bilgisayar üzerinde proğramlama dilinin editörü ile yapılır. Bu proğramın tasarlamada proğramcının kendi diliyle ifade ettiği MANTIKİ biçim-ARİTMETİK içerik taşıyan proğram tasarısının .......(?).... bir proğramlama dilinin (ki genellikle ingilizcedir) simgelerine çevirilmesidir. Kodlama, müsvettedeki algoritma ya da şemada yazılan (başla, oku, sayaç, topla, koşul, yaz, dur) gibi işlem komutlarının mesela pascal dilinde (begin, read, to, +, if...do, write, end) gibi komutlara dönüştürülmesidir.

İşte bu proğramın kodlama-anlatım-dillendirme yani simgelere (komutlara) çevirme aşamasında her türlü dillendirmede olduğu gibi lafz (değişken=variable), mana (değer=value), konuşan (deyim=mesage) ve dinleyen (değiştiren=operatör) uçları bulunurlar. Yapılan tasarımda bunların sürekli düzenlenmesi ve denetlenmesi sağlanarak insan ve makina arasındailetişim kurulması sağlanır. Kodlama yapmak için ileri seviyedebir ingilizce bilmeye de gerek yoktur.Liseden kalan bir ingilizce yeter hatta olmasa da olur. Çünkü siz proğramlama dilini öğrenirken aynu zamanda ingilizce de öğrenirsiniz.

III-) UYGULAMA

Tasarlama ve kodlama ile yapılan hazırlık döneminden sonra proğrama işlerlik kazandırma ve amaçlanan diyağramı bilgisayar üzerinde gerçekleştirme dönemi olan üçüncü ve sun aşamaya sıra gelir. Uygulama bilgisayar üzerinde proğramlama dilinin çeviricisi (yorumlayıcı ve derleyici) ile yapılır.

Tasarlamadan sonra yapılan kodlama ile; proğram, proğramlama dilinin kaynak kodlarıyla (ingilizceyle) yazılmıştır. Şimdi bu uygulama döneminde proğramın çalıştırılması için bu kaynak kodların, nesne koduna (makina diline) dönüştürülmesi gerekir.Eğer proğram doğru, kurallara uygun yani hatasız yazılmışsa (mesela ekrana bir çemberçizimi proğramlanmış olsun). Çevirici ile çalışma komutu (run) verildiği zaman ekrana tanımı yapılan daireyi görürüz. Bu proğramon makina diline çevrildiğinin ve aynı zamanda proğramın doğru yazıldığının göstergesidir. Eğer kaynak kodu yanlış yazılmış ise proğra çalışmayacak ve kaynak kodu üzerinde yanlış olan yer çevirici tarafından akranda proğramcıya gösterilecektir. Proğranım hatalı yeri de proğramcı tarafından düzeltilecektir. Böyle teker teker bütün hatalar düzeltildikten sonra yani debug işlemi yapıldıktan sonra proğram çalışır ve amaçlanan işlem ekranda gerçekleşir.

Bu, insan ve makina arasındaki etkileşim yani proğramcının deneme-yanılmalarıyla kayna kodu düzeltmesi ve derleyicinin kaynak kodunu nesne koduna dönüştürmesi ve makinanın ekranda proğramı çalıştırması işlemi proğramlama dili, makinada yüklü iken gerçekleşebilir. Siz herhangi bir makinada, kullandığınız proğramlama dili yorumlayıcısı ya da derleyicisi olmadan proğramınızı çalıştıramazsınız. Çalıştırmak istiyorsanız önce derleyici ile proğramı executable kısaca exe yaparek bağımsız bir proğram dosyasıhaline getirmelisiniz. Sonra herhangi bir makinada proğramlama dilinin yorumlayıcısı yada derleyicisi olmadan çalıştırabilirsiniz.

Şunu hemen belirtelim ki proğramcılık uygulaması yapmak için işletim sistemini çalıştırmayı bilmk yanı işletmen olamak şart değildir. Hiçbirşeybilmeden doğrudan proğramlama dilini öğrenmeye geçebilirsiniz. Tarihin yaptığı gibi işin zorundan başlayarak kolayına gitmek daha verimlidir. Birazda okuyacaksınız işletmenler yokken proğrancılar vardı! Sonra hazır proğramlar çıktı ve bizleri bu kolay yazılımlara alıştırarak “yazılım bağımlısı” haline getirilen işletmenler ordusunu doğurdu. Proğramcılıkta bir-iki ülkenin ve birkaç şirketin tekelinde kalarak bilgi çağında yeni bir sömürü aracını doğurdu.

Bu suistimali önleenin tek yolu proğramcılığın yaygınlaştırılarak diğramın kaynağı olan proğrama geçmek ve hatta proğramlama dilini geliştirecek yazılım ve donanım koşularını sağlamaktır. Belgesayar denilmesi gereken bugünkü mevcut bilgisayarlar, gelişmiş bütün yazılım ve donanımına rağmen ancak sadece sözel-sayıl dönüşümü yapabilmekte ve kendisi yeni bir bilgi üretememektedir. Bu pek hızlı aptal, yaptığı çok basit katlamalarla olağanüsyü işleri beceriyor görünse de bize olmayan bir bilgi ve yeni br doğru ya da değişik bir gerçek çıkarmaz. Bilgisayara ne verilirse onu almaktayız. sadece tasarladığmız yazılım ve donanım koşullarında verilen bilgiyi işleyebilmektedir. Ülkemizin geleceği belki ön-bilgi ve ön-karar üretebilecek nitel-nicel dönüşümü yapabilen gerçek bilgisayarların geliştirilmesine bağlıdır.

F-) KULLANICILIĞIN BOYUTLARI

Tarihi gelişimine baktığımızda belli başlı yüksek-düzey proğramlama dillerinin

esaslarının 1950-1970 yılları arasında atıldığını görürüz.Her ne kadar 1974 denberi CP/M, Visicalc, WordStar ve Lotus gibi sistemler varsa da asıl gelişme 81’de çıkan DOS işletim sisteminin yaygınlaşmasıyla başlar. Demekki 70 öncesinde olduğu gibi 70 sonrasında bilgisayar kulanılımın temel aracı proğramlama diliyle yapılan proğramlardı. İşletim sistemi ise sonrada geliştirilen ve bilgisayar kullanımını kolaylaştıran ve 80’li yıllardan beri bilgi-işle alanında diyağramlarıyla yaygınlaşan ikinci yazılım olmuştur.

İşletim sistemini, herkesin işine yarayan çok geniş kapsamlı bir proğrama dayanan genel bir diyağram olarak düşünebiliriz. İçerisinde birden çok menü ve editörü bulunduran işletim sistemleri önceki makina dili ile yapıldığından çok basit oluyor fakat buna karşılık pek zahmetli emek gerktiriyordu. Yüksek düzey proğramlama dilleri çıkıp proğramlama da kolaylaştıktan sonra DOS gibi büyük ve yetenekli proğramlar ve işletim sistemleri yapmak olanağı doğmuştur.

Bu yazılımlarla, bilgisayarların belleğine hafızamızın ağırlığını yüklemek ve işlemcisine zekamızın angaryasını aktarmak suretiyle kullanmak ve kelime-işlem, tablolama, grafikve veri-işlem yapmakta yararlanmak bilgisayar kulanımının temel amaçlarıdır.

Bilgisayarların yazılım ve donanımı geliştikçe bu dört temel bilgi-işlem işlevi yetkinleşmektedir. Bu giderek hızlanan süreç, 1980’lerde işletim sistemlerinin kolaylığının yanında odalar dolusu büyüklükteki ilk bilgisayarların küçülmesi, ucuzlaması ve bilgisayar kullanımının yagınlaşması ile başlar.1981’de çıkan DOS (Disk Operation System), işletmenlik işlemlerini basitleştirdiği gibi proğramlama dillerini ve bunların editör ve çeviricilerini de kullanmayı kolaylaştırmıştır. Hele 1985’te WINDOWS çıktıktan sonra bu sistemin görsel grafikel öğeleri olan; pencereler ve bunlar içindeki simgeler (nesneler) sayesinde DOS’un dizinleri ve içlerindeki dosyaları görür hale getirilmiştir. Böylece OOP (Object Oriented Programming = Nesne Yönelimli Proğramalama) yaklaşımı ile belli başlı bütün diller visiual (görsel) nitelik kazanmış proğram yapma işi ve sanatı daha da somutlaşmış ve kolaylaşmıştır.

Bu tarihi arka plan bize şunu gösteriyor ki 1970 öncesinde “mevcut” taleplerinin %90 ının karşılayan kullanıcılar aynı zamanda proğramcılar idiler. Yani kullanıcılar proğramcı ve işletmen diye ayrılmıyorlardı. Amaç ve hedeflerini proğramlama dili ile gerçekleştiriyorlardı. Ama 80 sonrası gelişen yazılım ve donanım desteği sayesinde işletim sistemleri ile bilgisayarı kullanma ve ondan yararlanmak kolaylaşınca, kullanıcılar; işletim sistemiyle %70’lik hizmet veren İŞLETMENLER ve bunların karşılayamadığı %20 hizmeti veren PROĞRAMCILAR diye ikiye ayrıldılar.

Proğramcıların yetenekli ve becerikli olanlarını bünyesinde toplayan yazılım şirketleri de bu %20 hizmeti verecek paketler yani Lotus, Word, Exel, AoutoCAT, Dbase gibi uygulama proğramlarını yaptırınca geriye kalan işin yarısı %5’lik bir hizmeti yani kullanıcı proğramı yapmak amacıyla proğramcılık mesleğini takip etmek akıl karı mıdır? diye sorulabilir.

Uygulama proğramarının yetersiz kaldığı talepleri karşılamak için bu uygulamaları geliştirmeye kalan ve bunun için bir proğramlama dilini öğrenmek isteyen acaba doğru mu yapıyor?

Yazılım bağımlılarına sorarsanız proğramcılık öğrenmek akıl karı değildir. İşletim sisteminin arkasını merak etmek ve hatta bilgisayar bilişim biliminin aslını ve esasını öğrenmek ise boşuna zahmettir. Para kazanmak ve bir bilgiişlem merkezinde iş bulmak için proğramcılık mesleğini seçenler dışında bilgisayar denen acaibin mahiyetini bilmek isteyen meraklılar ise tam aksi fikirdedirler. Hatta diyoruz ki kullanıcıları “DONANIMA BAĞLI YAZILIM” ya da “YAZILIMA BAĞLI DONANIM” çıkmazından kurtarmanın ve evrensel gelişimin önünü açmanın yolu proğramcılığın özendirilmesinden geçmektedir.

Proracılığın özendirilmesinde de en önemli gerekçe olarak bilgi toplumunu ekonomik büyüme ve teknolojik ilerlemeye bağlı ulusal kalkınma hamlesini görüyoruz. Bu ülkenin entelijansiyesi bilgi güçlerini ve beyin yeteneklerini 60-70-80 yılları darblerine sebep olan yurt-içine yönelik ideolojik savaş yerine 1950!den 1990 arası kırk yıllık süre içinde yurt-dışına yönelik teknoloji savaşına harcasalardı sonuç her halde farklı olurdu. Ülkenin kalkınmasını ve bu ulusun yükselmesini Bilgi Toplumuna Katkıda gören Türkiye’nin; bilgili ve erdemli, çalışkan ve yurtsever evlatları; bilgisayarın kullanılması ve yaygınlaşmasını önemli ve değerli görüyorlarsa onlar da bu işe yeterince ağırlık vermek zorundadırlar. En azından evlerine bilgisayar alıp çocuklarını bir an evvel bu bilgi aracı ile tanıştırmalıdırlar. Bilgisayar oyunlarından ise korkmayalım. Onlar bilgisayarın reklam dairesidirler.

İşte bu şevk ve heyacanla proğramlama işine soyunanların karşısına çok sayıda ve pek çeşitli proğramlama dilleri çıkınca Acaba hangi dili öğrensem? sorusu gündeme gelecektir. Bu sorunun cevaplanması için proğramlama dilleri tarihi seyri içinde kısaca anlatılarak yetenek ve imkanlarımıza uygun gaye ve hedeflerimizle çakışan bir proğramlama dili seçimine esas teşkil edebilecek kısa bilgiler verilecektir. Ayrıntılı, örnek ve geniş kapsamlı,liyakatlı eserleri konusunu uzmanlarından bekleyen ve bu amatör çalışmada amacımız hangi proğramlamadilinin en üstün olduğunu belirtmek değildir. Sadece karlı ve kısa bir yol tutmak, başarılı ve verimli bir sonuca ulaşmak için proğramlama dilleri hakkında tanıtıcı ve bilgilendirici açıklamalar yapmak ve seçimi proğramcı adayına bırakmaktadır. Bu ihtiyacı karşılamak için yetersiz de olsa katkıda olacağı düşüncesiyle bu işe giriştik.

G-) DİLLERİN KRONOLOJİK GELİŞİMİ

ASSEMBLER

Kaynakların yazdığına göre “Makina dili” olan ASSEMBLER dilini herkes doğrudan kullanıp proğram yapamaz. Çünkü “çok zor ve pek soyuttur”.

Fakat siz bu zorluğa yılmadan bilgisayar hakkında daha köklü bilgi edinmek için bu dilde makima komutlarını kullanarak proğram yapmak isterseniz önce yine yüksek bir seviye dili olan Assembly (Birleştirme) dili kullanarak proğram yazarsınız. Sonra bu dilde yazılmış proğram komutları assembler proğram vasıtasıyla assembling yapılarak makina diline çevrilir. Elbette bu iş pek çok ayrıntı ve zaman ister. Elbette bilgisayarlar ilgisi ikincil olan kullanıcılar için bu iş pek büyüktür. Bunun için sadece iki harfi (0-1) olan ve çoğu kitaplarda insanlar ondan uzaklaşsın diye “çok zor ve pek soyut” diye tanımlanan makina dilinden insanın anlayabileceği simge ve söz-dizimlerinden oluşacak yüksek seviyeli dillere çıkabilmek için çalışmalar yapılmıştır. Bu husutaki ilk çalışmalar:

1995 yılı sonlarında ölen ilk bilgisayar mucidi Alman Konrad Zuse’ün 1946’da yaptığı plankalkül ve 1949’da Short Code, 1952’de çıkan Math-matik ve 1957’de yayınlanan Autocode böyle ilk yüksek seviyeli dillerdir. Bundan sonra yaygınlık kazanan dilllerin başlıklar halinde terihi sırasına göre kısaca anlatacağız. Dilin adını taşıyan başlığın yanında o dilin genel özelliğini köşeli parantez içinde vereceğiz. Şimdi açıklamalara geçmeden önce bu tarihlerde Avrupa ve Amerika aşağıda sıralanacak çalışmaları yaparken bu ülkenin aydınları ideolojik sağ-sol kavramalrı ile meşgul bir vaziyette milleti düzeltmeye ve devlete doğrultu vermeye çalışırken kendi üzerlerine düşen bilimsel görevi unuttular. Masa başı siyasal kuramları ve duygusal kolay tepkileri, hem kendilerini hem toplumu evrenle ve uygarlıla bilimsel ilişkiye sokacak ve düşünerek bilgi üretecek gerçek entellektüel çaba ve çalışmanın önemini ve önceliğini, değerini ve gereğini gözardı ettirdi ve giderek batıya, Avrupa’ya ve Amerika’ya bağlı ekonomiler ve teknolojilerin sorumluluğunu omuzlarına yükledi. Yazık ki hala bu kısır döngünün farkında değiliz ve hala kendi elimizle hazırladığımız ideolojik sorunlarla meşgulüz. Bunu iyi anlamak için bilgisayar yazılımının oluşum ve gelişimine dair bu satırları okurken o tarihlerde bizim ve babalarımızın hatta çocuklarımızın ne ile meşgul olduklarını hatırlamalıyız. Sonra neden bizim bir Konrad Zuse’miz, Bill Gate’imiz olmadığının cevabını aramalıyız .

Bunun en emin cevabı da zannederim Mikrosoft İmparatorluğunu kuran Gates’in biyoğrafisini okumakta ve başarısının altında yatan “çalışmak, çalışmak, çalışmak” sırrını anlatmaktatır.

1. FORTRAN (ilmi dil)

Fortran (Mathematical FORmula TRANslation System) (Matematik Formül Çevirm Sistemi) 1957’de ıbm tarafından Jhon Backus yönetiminde bir ekip tarafından oluşturulmuştur. Sayıl yani matematik çalışmalar için yapılmış bir dildir. Hala geliştirilmekte ve kullanılmaktadır.

1962 Fortran IV, 1966 deFortran 66, 1968 Altron türevleri çıktı. 1957’de B.W. Kerningol C benzeri RATional Fortrran olan RATFOR’u düzenledi. 1978’de deFortran 77 için ANSI standartı hazırlandı. 1990’da yani unsurlar eklendi.

2. COBOL (ticari dil)

Cobol (Common Business Oriented Languages) (İş Dünyasına Yönelik Dil) Amerikan Standartları Entstitüsü tarafından tarafından gönüllü bir organizasyon olan CODASYL (Conference on data systems languages) tarafından 1959-1958 yılları arasında ticari amaçla veri işleme ve kütük yapılandırma uygulamaları için oluşturmuştur.

1993’de ANSI, nesne yönelimli Cobol için stndartlar hazırlamaya başladı. 1997’dekesi hali alacağı söyleniyodu.

3. LISP (sayıl-sözel)

Lisp (List Processing) (Liste İşleme)

MIT (Massachusetts Institue of Technology)’den Jhon McCarthy başkanlığında bir ekip tarafından 1959-1960’da geliştirilen bir dildir. Yukarıda anlatılan Fortran ve Cobol gibi YAPISAL proğramlama yani ayrıntılı komut tabanına dayanan klasik yaklaşım her alanda uygulamanın zorluğu görülünce yeni ufuklara açılabilecek özel diller arnmıştır.

Lisp bu arayışın ilk meyveleridir. Lisp’te proğram ve veri eşdeğer biçimde tutlur. Veri yapıları tıpkı bir proğram larak çalıştırılabilir. 1975’de G.L. Stell ve G.J. Susman tarafınden Lisp lehçesi kuruldu. 1981’de Common Lisp ile ortak Lips lehçesi (SHEME) oluşturuldu. Dylan Thomas bu lehçeyi 1992 nesne yönelimli DYLAN dili yaptı.

4. ALGOL (yordamsal)

Algol (Algorithmic Language = Algoritmik Dil)

İlk blok yapılı bir dil olan Algol, 1960’larn başında uluslararası bir ekip tarafından oluşturulmuştur. Pascal, PL/1, EUCLID ve benzeri ürünlerin geliştirilmesine kadar uzanan bir zincirin ilk halksıdır. 60’ların ortası ve sonuna doğru Avrupa’da en yaygın dil oldu. Algol ile ilk kez bir proğramlama dilinin sözdizim tanımı (syntax defination), bilimsel bir gramere dayandırılmıştır. Böylece Yordamsal bir dilin temeli atılmıştır. Aynı zamanda YAPISAL ve işlemsel proğramlama denilen bu yöntemle insan diline yakın proğramlama kodları elde edilmiştir.

Böyle bilimsel bir gramere sahip diller de belirsizlik ve hatalar daha güvenilir bir şekilde kontrol edilir. Denetim yapılarının esnekliği, geniş kullanım sağlayan tanımlar ve bilimsel proğramlar da aranılan işlevlerin Algol’da hazır bulunması; bu dilin akademik çevrelerde yaygınlaşmasını sağlamaktadır. 1968’de başka bir komite dilin eksiklerini gidermeye çalıştı. Anacak yinede iş hayatında yaygınlaşamamıştır.

5. SNOBOL (sözel-özel)

Snobol (String Oriented Symbolic Language) (Dizgi Tabanlı Sembolik Dil) 1962’li yıllarda Bell Telephon Labratuarları’nın karakter çizgisi işleyebilen bir dil tasrlama çalışmalarından kaynaklanmıştır. Sembolik ifadelerin işlenmesi ve metin çözümleme gibi sorunun matematiksel bir tabana oturtulamaması halinde bu dile başvurulur. Donanımdan bağımsız geliştirilmeye

çalışılmıştır. Pattern (örüntü) kıyaslamsına dayanır. Küe ilkel işlevleri ile örüntülerin oluşturlması yanında aritmetik, mantıki ve ilişkisel işleçler (operatörler) ile de desteklenmiştir. Yapımcısı Ralph Griswold tarafından yazılım benzetimine (software smimulation) dayandırılan bu dilin çalışmasındaki kolaylığına karşılık çevirilmesindeki zorluk yüzünden derleyicisi gerçekleştirilememiştir.

1967de gelişmiş Snobol 4 çıktı. 1971’de Snobol 4’ün devamı ICON çıktı.

6. PL/I (genel)

PL (Programming Language)

Görüldüğü gibi bazı proğramlama dillerinin bazıları sadece blimsel, bazılarının ise sadece yaygın günlük prblemlere yöneliktir. Diğer tarftan sadece sayıl ya da sadece sözel diller oluşturulmuştur. Şimdi bu türlerin yanında bunların hepsini kapsayacak ve bütün sorunları çözümleyebilecek genel bir proğramlama dilinin tasarlanması düşünülmüştür. Bu dil 964’lerde IBM Corporation tarafından sistemlerinde kullanılmak üzere çok amaçlı olarak geliştirilen PL/1 dilidir. Ancak çok yavaş çalışır, kapsamlı amaç işlem hızımnı düşürür.

1960 yıllarında Kennet Iversol’un APL (A Programing Language = Bir Proğramlama Dili)nden esinlenmiş olsa gerekir

APL, 1969’de IBM’in Armonak merkezinde tanıtıldığında herkes kapışmıştı. 1984’de APL 2 çıktı. 1990’da K. Iverson ve Roger Hul APL 90 konferansında (J) dilini tanıttılar.

7. BASIC (basit)

Basic (Beginner’s All-purpose Symbolic Instruction Code) yani

Acemilerin çok amaçlı sembolik komut kodu anlamına gelen bu dil New Hampshire Dartmout Koleji’nden iki profesör J.G. Kemeney ve T.E. Kurtz tarafından öğrencileri Fortran kullanmaya alıştırmak için 1.5.1964’de oluşturulmuştur. Bill Gates ve Paul Alen 1965’te bir Basic sürümü yapıp ilk PC’yi yapan MITS’e (Micro Instrumentation
 
 

and Telemetry System) sattılar. Bu yazılım, ilk Personel Computer(PC) olan Altair 4

KB’lık belleğinde 2 KB’lık yer kaplıyordu. 1964’ten sonra gözde proğramcıları bünyesinde toplayan Bill Gates’in Microsoft’u başta Basic olmak üzere harıl harıl proğramlama dili üretiyordu. Ancak 1980’den sonra DOS ile işletim sistemlerine yöneldi. 1985’te Windows’u çıkardı. Microsoft 1991’de Basic’i nesne yönelimli Visual Basic’e çevirdi.

Bugün dünyanın en zengin adamı ve ‘yazılım tekelinin” rakipsiz patronu bu adam yazılımdan sermayesiz servet biriktirirken, Amerika bu adamın tekelini kırmamakla acaba neyi amaçlamaktadır? Bu para gücüne ulaşırken proğramcılığın bilgi gücünden başkasını kullanmayan bu insan hem bizi bilgi gücüne özendirmeli ama aynı zamanda düşündürmelidir de. Yazılıma bağlı bir dünyada korkunç bir sömürü imkanının doğmasının; olumsuz iletişim çekici gücü olan “medya”nın (F.F.S.D.) bu bilgi-işlem aygıtının ileti işlem aracına dönüştürmesiyle kitleleri bozuk yönlendirmesinin; bu dönüşüm ve yönlendirmenin olumsuz rtkileşimin ezici çarkları olan “mahva” (B.B.B.P.) vasıtasıyla insanın edilgin oalrak kötüye kullanılmasının önüne nasıl geçilebileceği insanlığın ciddi bir gelecek sorunudur. Bu durum bize mülkiyetin hüküm (karar) gücünün yani hukuk erkinin yeniden sorgulanmasını ve askeri ve siyasi gücün yeniden yapılanmasını ve bu şekilde bilgi gücü ile karar gücünün, siyasi güç ile silah gücünün yeni bir dengeye kavuşturulması gereğine işaret etmektedir.

8. PASCAL (düzenli)

Cobol ve Fortran karışımı zarif bir dildir. Zürich’den Profesör Niklaus Wirth tarafından teknik bir dil olarak tasarlanmıştır. İyi proğramlama alıştırmaları aracılığı ile başka bir dilin öğrenilmesine kolaylık sağlamak amacıyla 1970 yılında doğan bu dil 1975-1981 yılları arası geliştirilerek yaygınlık kazanmıştır. Ancak yaygınlık kazanan interaktif proğramlar ve makina dilne yakın

uygulamalr için elverişsiz bir dildir. Borland son yıllarda bu dili DELPHI ile nesne yönelimli yaptı.

9. PROLOG (bildirimli)

Prolog (PROgramming LOGik) (Mantıki Proğramlama)

Marseilles Üniversitesi’nden Alain Calmeruwer ve P. Russel tarafından 1972’de mantıki çözümler için geliştirilmiştir. Şimdiye kadar göreüğümüz yüksek seviyeli dillere yardamsal diller denir. Bu dillerin işlemsel (prosedurel) ve lisani (gramatik) yapısının aksine prolog bildirimsel (declarative) ve mantıki (logik) bir yapıya sahiptir. Çünkü bu dilde karar verme aşamaları proğramcıdan alınarak makinaya yüklenmiştir. 1980’den sonra yaygınlaşan prolog dili iki tür hüküm dizilerine sahiptir: Olgular (fatis) ve Kurallar (rules). Olgular ve kurallar kombinasyonu kurularak hedefe ulaşılır.

Yordamsal dillerin yetersiz kaldığı uzman sistemler, veritabanı proğramları ve mantıki kararlar içeren konulara uygun bir dildir. Ayrıntılı kod yazımına dayanan Basic ve Pascal gibi yordamsal dillerdeki “Problemi ANLAMAK- Çözüm TASARLAMAK- Proğramı YAZMAK” aşamalarından ortadaki ÇÖZÜM TASARLAMAK aşaması devreden çıkarılır. Bu iş bilgisayara yaptırılır.

Ancak makinanın yapacağı tasarlamada insanın sezgileme gücü bulunmayacağı, yetersiz kalacağı da açıktır. Buna rağmen insanlar makinadan en yüksek boyutta yararlanmak yolundan vazgeçmezler. Hatta Japonya beşinci kuşak dil projesine 1991’de prolog kullanarak başladı.

10. C DİLİ (Kullanışlı)

Bell Labratuarlarından Dennis Ritchie tarafından 1972’de tasarlanmıştır. Ritche’nin Ken Thompson ile Unix işletim sistemini tasarlarken ortaya çıkan B dilinden kaynaklanan bu dil uygulama geliştirmek için değil proğramcıların işletim sistemi yapmaları için yine proğramcılar tarafından oluşturulmuştur. Bunun için de bir sürü kolaylıklar katılmıştır. Assembler diline yakın profosyönel bir dildir. Unix işletim sistemi C dilinde yazılmıştır. Ancak bu sistemi taşımayan bilgisayarlar da yaygınlaştığından bunlar için de ayrıca C derleyicisi geliştirilmiştir. Bu durmda doğacak elverişsizlikler yordamlık (library) kullanımıyla büyük ölçüde giderilmiş ve dil yaygınlık kazanmıştır.

Bu dilin makina diline yakınlığından doğan esnekliği sebebiyle özel arabilim geliştirme yazarları ile işletim sistemi ve sistem yazılım yazarlarından genel uygulama proğramcılarına kadar geniş bir yelpazenin tercihi olmasına ve öğrenilmeye değer bir proğramlama aracı bulunmasına rağmen çok özel uygulama alanlarında bu uygulama için verimli özel bir dil varsa C dili ne kadar esnek olusa olsun o özel dil seçilmelidir.

1980’de Ritchie ve B. Straustrup ile birkaç dil geliştirmiştir. Bunlar da C++ nin oluşmasını sağladı. Nesne yönelimli bir dil olan C++, Pascal’Turbo 5.5 ve Delphi ile birlikte Borland’ın Microsft’a karşı ağır topları oldu. 1983-1989’da ANSI tarifnamesi yayınlandı. 1990’da geliştirildi. 1996 ANSI standartı bekleniyor.

11. MODULA (Toplayıcı)

Modula, Wirth’ün Pascal’ı gelişen teknolojiye eriştirmek için birincisini 1975’de ikincisini 1980’de ortaya çıkardığı bir dildir. Bu dilin temel yaklaşımı modularity (bilimsellik)tir. Ada ve C’nin en iyi özelliklerini ekndinde sakıncasız toplar denilmesine rağmen yaygınlaşmamış bir dilidir. Hem de tercih edilen Fortran, Cobol, Pascal, C ve Ada’yı kapsamasına rağmen. Bunun sebebi sadece proğramcıların alışkanlığının, yeniliğe yakınlıklarını perdelemesi oalmaz herhalde. Şuda bir gerçektir ki değil Modula, Pascal’ı bile gerektirmeyen Basic ile yapılabilecek proğramlar var. Wirth, bu dilin devamı ola OBERON’u 1988’de çıkardı.

12. ADA (genel)

İngiliz şairi Lord Byron’un 1834’de ilk bilgisayar makinası sayılacak Babbage’in analitik makinasını destekleyen kızı Agusta ADA’nın ismini taşıyan bu proğram Amerikan Savunma Bakanlığı tarafından 1975-1983 yılları arasında bir ekibe sipariş ettirilmiştir. Ordudaki çeşitli donanımları çalıştıracak ortak biryazılım olarak düşünülmüştür. Temel alınan diller arasında Algol, Pascal ve PL/1 vardı ama C yoktu. 1995’de revize edilen ADA’ya nesne yönelimli nitelik kazandırıldı.

DİĞER DİLLER

1966’da Beranek ve Newman’ın “turtle graphics” leriyle tanınan LOGO çalışmaları başladı. 1970’lerde Charles Moore’un FORTH’u ile Xerox PARC’da yapılan SMALLTALK dilleri unutulmamalıdır. 1985’de PC ler için Hat Yönelimli Smalltalk olan METHOD tanıtıldı. Keza 1976’da Postcript’in öncüsü DESING SYSTEM LANGUAGE; 1977’de (M) dili MUMPS yani tıbbi kayıtlar proğramlama sistemi; 1978’de tasarımcıların baş harflarinden isim alan metin işleme dili olan AWK belli başlı dillerdendir. D-BASE proğramlama dilinde çok veri tabanına dayanan veri-işleme sistemi bir ara-sistem olarak düşünülebilir.

Yukarıda sayılan 12 dilden başka yaklaşık 200’e yakın proğramlama dilinin varlığını belirterek dilern bugün kazandığı “nesne yönelimli proğramlama” boyutuna değineceğiz.

NESNE YÖNELİMLİ PROĞRAMLAMA

1985’den sonra (GUI) Grafik Kullanıcı Arabirim ile Windows gibi nesne yönelimli işletim sistemleri yaygınlaştıktan sonra OOP (Object Oriented Programming = Nesne Yönelimli Proğramlama) yöntemi geliştirilmiştir. Pencere ve içindeki simge (nesne)lere danan bu görsel işletim sitemlarinin ardından geliştirilen bu görsel işletim sistemlerinin ardından geliştirilen bu yeni proramlamatekniği kolaylığından dolayı o kadar yaygınlık kazanmıştır ki klasik yapısal/yordamsal dillerin hepsinin nesne yönelimli görsel yeni tipleri ortaya çıkarılmıştır. Basic, Visual Basic, Pascal, Delphi, C, C++ OOP haline getirilerek FOXPRO ve benzerleri gibi OOP dilleriyle rekabet yapabilecek hae dönüştürülmüştür.

H-) DEĞERLENDİRME

Görüldüğü üzere çok sayıda çeşitli proğramlama dilleri varsa da bunlar özü itibarıyla yordamsal(yapısal), bildirisel, hat yönelimli ve nesne yönelimli(görsel) olmak üzere dört ana gruba indirgenebilir. Bildirimsel diller mesela Pralog uzman sistemler için özel bir dil, hat yönelimli diller yeni bir dil olarak bir kenara bırakılırsa geriye yordamsal/yapısal ve nesne yönelimli/görsel diller kalır. Nesne yönelimli/görsel diller, bir dil olmaktan ziyade işletim sistemi kolaylığından yararlanan bir teknik olarak düşünülebilir. Zaten hemen bütün yordamsal dillerin nesne yönelimli versiyonları çıkartılmıştır. O zaman meyden yordamsl dillerin seçimine kalacaktır.

Yordamsal dillerin seçimi; proğramlanan alanın ticari, ilmi ve günlük kullanım olanağına göre değişecek ise de biz amatörler için Basic dili, profesyoneller için de C dili seçilmektedir. Ancak yine de amaca uygun verimli bir dil için ayrıntılı bir araştırma yapılmasına ve kaynaklarımıza müracaat edilmesini öneririz. Ayrıca ileri düzeyde bilgisayarlarla ilgilenenlere ekteki 4444 kavram ve şemalarını sunarak nitel nicel dönüşüm için teorik bir tartışma zemini sunulmuştur.

I-) PROĞRAMCILIĞIN GELECEĞİ

Son zamanlarda uygulama problemlerinin çoğuna çözüm bulan çeşitli hazır paket proğramların bolluğundan dolayı kullanıcının uygulamayı geliştirmeye ihtiyacı kalmadığı ileri sürülmektedir. Kullanıcının mevcut paket proğramları uyarlamak suretiyle kullanıcı proğramı yapma gereği duymayacağına inanılır. Proğramcılık ilgilinmenin hazır yapılmış ayakkabılar varken ayakkabı edinmek için ayakkabıcılığı öğrenmek kadar gereksiz olduğu söylenir. Ama kazın ayağı da öyle değildir. Çünkü ayakkabı insanın ilk basit-fizik buluşlarından birisidir. Bunun için verilen örnek haklı gibi görülebilir. Ancak bilgisayar, insanın hesap mkinesinden televizyona, saaten videoya kadar bütün buluşlarını kapsayan kültürel iletişi ve bilişim cihazı olarak en son kompleks- teknik bir buluşudur. Uygarlığın zirvesini simgelemektir. Tekniğimizin belki bilimimizin gelişmesini ve ufkumuzun açılmasını sağlayacak bu cihazı bir ayakkabı ile benzeştirmek canlı ağacı cansız oduna kıyas etmeyi andırıyor. Yani alanları ayrı olduğu biri serada öbürü süreyyada bulunduğu için yapılan kıyaslama geçersizdir. Uygarlığın bu çağdaş bilgi aygıtına ve onun kaynağına yani proğramcılık ve tasarıma bigane kalmak; zekayı dondurarak bilgiyi, gücü ve başarıyı armamakla eşdeğerdir.

PROĞRAM ÜRETEÇLERİ denilen kulanıcının sorunlarını ayrıntılı olarak belirtmesinden sonra uygun bir proğram yazan proğramlar yapılmıştır. Bilgisayar destekli yazılım mühendisliği (CASE) denilen bu yönetimin, proğram üretimini daha verimli hale getireceği, bunu sağlayacak yazılım ve donanım geliştireceği şüphesizdir. Ancak henüz elde mevcut olanlarının sınırlı kaldığı ve verimsiz olduğu görülmektedir. Kaldı ki önemli olan bu üreteçlerden ziyade kendimizin üretken olaması ve hazır ürünleri kullanma kolaylığından kurtulmamızdır.

İşletim sistemlerinin gelişmesi ve uygulama proğramlarının da çeşitlenmesi karsılığında bu hazır proğramları kullanan işletmenliğin artık proğramcılığı aratmayacağı söylenmektedir. Ancak doğru değildir. Çünkü bu gükü bilgi- işem çalışmaları, Birkaç damarı olan tükenmeye yüz tutmuş maddi maden değil belki hadsiz kelimatı barındıran bitmez tükenmez bir umman olan bilişim, iletişim ve etkileşimin bir başlangıcı ve sahilidir.

Diğer taraftan işletim sistemlerinin ve paket proğramların dayanağı olan proğramcılığı uzmanlık seviyesinde olmasa dahi giriş seviyesinde öğrenmek en azından faydalıdır. Sorunu bireysel değil de toplumsal ve ulusal olarak düşünürsek o zaman proğramcılık zorunlu ve gerekli bir milli dava olarak görünecektir. Çünkü mesela on bin kişi proğramcılığı merak edecek ki bunun bin kişisi uzman olsun. Ta ki hiç olmassa bu bin uzman kişinin yüz tanesi yenilikler yapabilece k kaşifler olabilsin. Belki bu yüz kaşiften bir tanesi nitel nicel dönüşümü yapabilecek gerçek bilgisayarı icad etsin ki biz bu uygarlık-bilgi-teknoloji savaşından galip çıkalım.

Uygulamalar geliştirmek için uygun bir proğramlama dilini öğrenmenin bilgisayarı daha bilinçli ve verimli kullandıracağı bir gerçektir. Bu işe gişilirse pek zor bir uğraş olamayan proğramcılığı öğrenmeye harcadığı zamanın fazla olmadığı görüleceği gibi öğrenmeyle elde edilen kazançların harcanan emeği amorti edeceği anlaşılacaktır. Meraklı olan insana proğramcılık dünyasına girmek için azami bir sene yeterlidir. Kendisinin, ülkesinin, milletinin ve ümmetinin ufkunu açacak bir başlangıç idealist insan için bu süre uzun ve ürkütücü değildir.

Demiştik ki, “mevcut” kınetik kullanıcı taleplerinin %70’ini işletim sistemi %20’sini uygulama proğramları karşılatyabilir. Bu toplam %90 talepten sonra kalan %10’luk hizmetin ön-yarısı %5 hizmeti için; uygulama geliştirerek kullanıcı proğramı yapmak amacıyla proğramcılığı öğrenmenin gerekli olup olmadığı tartışılabilir. Biz çok gerekli olamasa dahi proğramcılığın enazından giriş seviyesinde öğrenilmesinii faydalı oladuuna inanıyoruz. Hatta işletmenliği daha verimli ve zevkli hale gerireceğini savunuyoruz. Bu tartışmada haklıyız. Fakat haksız da olsak %10’un ard-arısı %5’lik mümkün potansiyel için hiçbir tartışmaya gerek yoktur.

Çünkü bu %5’lik hizmetin %100’lük bir potansiyel olduğunu tarih bize gösteriyor. Çünkü geçmişteki insanlar kağıt ve kalem ile yetinselerdi gelecekte saklanan bilgisayarı arayıp bulamazlar ve kağıdı atomik hacme ve kalemi ışk hızına çıkaramazlardı. Bizde mevcut sistem ve proğram yazılımı ile yetinmeyelim ki bilişim bilimini ileri ufuklarda ve bilgi toplımunun çekici doruklarında gezinebilelim. Bunun için proğramcılığın teşvik edilmesi daha de geyret göstererek bir milli politika haline getirilmesi gerektiğine inanıyoruz.

Nitekim en eski dillerden olan Fortran’ın hala ilmi bir dil olrak gelişmeye ve kullanılmaya devam etmesi, Japonya’nın prolog ile 5. kuşak dillere yönelmesi ve yapay zeka konusunda ki çalışmalar proğramcılığın ölmediğinin ve

gelecekte çok şeyleri gizlediğinin göstergesidir. Ciddi bir proğramcılık, insanın gizli duran ihtiyaç ve talepleri için her zaman tetikte beklemektedir. Yoksa kurgu-bilim filimlerinde filim kandırmacılığı ve hayalciliğin kolaylığı ile gösterimlenen olağanüstü olayları nasıl ilmen tasarlıyacağız ve fiilen gerçekleştireceğiz.
 
 

KAYNAKLAR

1.) Bilgisayar Proğramlama Dilleri,Emine ERİK, Altuğ GÜR Özlem ÖZGÜ, Haluk TÜFEKÇİ

Alkım Yay. Ankara 1993

2.) Önce Bilgisayarı Tanıyalım, Faruk DİLAVER

Ankara, 1992

3.) Bilgisayar & Proğramlama Mantığı & Basic, Coşkun KÖMÜRCÜ

Atatürk Bulv. 143/5 Ankara

4.) Proğramlamaya Giriş/Basic 2.cilt Cezmi ORKUN,

Ank. 1991(Fevzi Çakmak sok. 11/7)

5.) Bilgisayar Proğramlamanın Temel Bilgileri F. YILDIZ, C. İNAL, A. FERDİ

Konya, 1994

6.) Turbo Pascal ve Proğramlama Sanatı Ömer AKGÖBEK,

İstanbul 1995, Beta Yayınları

7.) Pproğramlamaya Giriş ve Basic Prof. Dr. Ömer ESEN

Alfa Yayınları, İstanbul



8 . ) HARD DRIVE

Bill Gates ve Microsoft İmparatorluğu’nun Kuruluşu James WALLACE, Jim ERICSON

Seç Yayın Dağıtım, İstanbul Tel 212 5115030

Tercüme : Celal KAPKIN

9.) Byte Dergisi, Eylül 1995 Özel Sayı (20 Yılın Raporu)

10 .) PC Donanımı, Murat YILMAZ, Sistem Yayıncılık İst-1994
 
 

----------------------------------------------------------------------------------------

(*) Kültür Bakanlığı Hukuk Müşaviri ve BTK (Bilgi Toplumuna Katkı) Kümesi öğesidir