230 likes | 409 Views
Bilgisayara Giriş. Hazırlayan: Emin BORANDAĞ. Program Akışı. Program akışı, akış diyagramında (flow chart) resim ve sembollerle şematik olarak gösterilmektedir. Program fikrinin ayrıntılı olarak ifade edilmiş bu şekli, program geliştirme sürecinin en fazla çaba ve emek gerektiren kısmıdır.
E N D
Bilgisayara Giriş Hazırlayan: Emin BORANDAĞ
Program Akışı Program akışı, akış diyagramında (flow chart) resim ve sembollerle şematik olarak gösterilmektedir. Program fikrinin ayrıntılı olarak ifade edilmiş bu şekli, program geliştirme sürecinin en fazla çaba ve emek gerektiren kısmıdır.
Program Akışı Program geliştiricisi, programı herhangi bir kodla yazmaya başlamadan önce, elde ettiği verilerin mantıksal olarak sıralandığı bir taslak oluşturur. Bu taslakta programın fonksiyonunu nasıl yerine getireceğini genel olarak belirleyen işlem basamakları yer almaktadır. Program akışı, verilerin işlem basamaklarının mantıksal dizi şeklinde birbirine bağlanmasıdır. Program akışı, akış diyagramında (flow chart) resim ve sembollerle şematik olarak gösterilmektedir. Bu şekilde hazırlanmış program akışı, program geliştiricilerine program kodunun yazılmasında, büyük kolaylık sağlar. Bu yönüyle program akışını, mimarların inşaat faaliyetlerine başlamadan önce hazırladıkları proje şemasına benzetmek mümkündür. Program akışı, bir bilgisayar programına esas olan fikrin ifadesidir. Bir programın fikri, program akışında yer alan ayrıntılardan çıkarılabilir. En genel anlamda bir programın fikri, o programın amaç veya fonksiyonudur. Buna göre, bir kelime işlem programının temelindeki fikir, "yazmayı daha kolay hale getirmek" olarak açıklanabilir. Aynı zamanda program fikrinin, bilgisayarda problemin çözümüne doğrudan yönelmiş ayrıntılı işlem basamaklarından çıkarılması da mümkündür. Böylece genel olarak "yazmayı kolaylaştırmak" olarak belirlenen bir kelime işlem programının fikrinin ayrıntılı ifadesi şu şekilde olabilir: "Daktilo etmek ve dokümanları düzenlemek için hızlı bir iç bellek kullan; dokümanları depolamak için bir dosya sistemi kullan; çıkışı basitleştirmek için kelime atlayıcısı kullan." Program fikrinin ayrıntılı olarak ifade edilmiş bu şekli, program geliştirme sürecinin en fazla çaba ve emek gerektiren kısmıdır.
Algoritma Algoritma kelimesinin matematikte kullanılan "logaritma" kavramıyla bir ilgisi yoktur. Algoritma kelimesi, IX. yüzyıl ünlü Türk bilgini matematikçi "Ebu Cafer Muhammed bin Musa El - Harezmi"nin isminin kısaltılmasından türetilmiştir. "El - Harezmi" kelimesinden esinlenerek İngilizce'de "algorithm" denilmiştir. Program akışı hazırlandıktan sonra, program algoritmasının kurulmasına sıra gelir. Program geliştiricisi, bu aşamada alt problemlerin çözüm yolunu belirler. Algoritma en geniş anlamıyla, verilerden hareketle istenen sonucun nasıl alınacağını gösteren bir uygulama metodudur.
Algoritma Algoritma; çözüm yolu aranan problemin herhangi bir adımında ne gibi işlemler yapılacağının tıpkı bir yemek tarifinde olduğu gibi yazıya dökülmüş şeklidir.Algoritmada her adımda giriş veya çıkış bilgileri, bölme, çarpma, aktarma, test ve benzeri işlemler yer almalıdır. Belli bir sayıda adımdan sonra algoritma mutlaka son bulmalıdır. Algoritma anlatımda kullanılan cümlelerin kolay, basit ve benzer konular için de geçerli olmasına dikkat edilmelidir. Program geliştiricisi çözümü istenen probleme uygun algoritmayı kurabilmek için, çeşitli kaynaklardan faydalanabilir. Benzer programlar verimli bir kaynak olabilir. Gelişmiş ülkelerde, bilgisayar kitapları ve diğer süreli yayınlar, belirli problemlere ilişkin algoritma yayınlamaktadırlar. Algoritmayı paket program kütüphaneleri şeklinde bazı büyük pazarlardan da elde etmek mümkündür. Nihayet, çok fazla rafine olmuş bazı programlama dillerinde, program geliştirme aşamasında algoritmaya ihtiyaç duyulmaz. Zira, bu tür dillerde algoritma, programlama dilinin tanımı içerisinde yer almıştır.
Kaynak Kodu ve Makina Konu Problemin çözümü için uygun algoritma kurulduktan sonraki aşama, programın kaynak kodunun yazılmasıdır. Kaynak kodunun yazılması, program geliştirme sürecinin en edebi (literary) kısmıdır. Gerek program akışı, gerekse algoritma, çok detaylı olsalar bile, üsluba ilişkin tercihler olmaktan öteye gidemezler. Bir programın sadece istenen "görevi"; yapması yeterli değildir. Aynı zamanda, o programın kolayca okunabilir nitelikte de olması gerekir. Zira, bir programın hatalarının giderilebilmesi ve sonradan geliştirilebilmesi, ancak onun okunabilir olması halinde mümkün olur.
Kaynak Kodu ve Makina Kodu Program kodlaması da denilen kaynak kodunun yazılması için, genellikle yüksek seviyeli programlama dillerinden birisi kullanılır. Programın kodlanmasında kullanılacak programlama dilinin çözülecek problemin yapısına uygun olması gerekir. Kodlama, esas itibarıyla, akış diyagramında yer alan bilgi düzeninin, seçilen bir programlama dilinin kurallarına uygun olarak bilgisayara aktarılması işlemidir. Bu nedenle, program akışı ve algoritma gerekli ayrıntıları taşıyorsa, programın kodlaması da basit olur. Bununla beraber, uygulamada, program akışı aşamasında önemli detayların atlandığı da görülmektedir.
Kaynak Kodu ve Objektif Kod Programın kodlanmış şekline kaynak program (source program) adı verilir. Kaynak program, insanlar tarafından okunabilen, yazdırılabilen, üzerinde değişiklik yapılabilen bir yapıdadır. Ancak programın bu hali, bilgisayar tarafından anlaşılmaz ve dolayısıyla çalıştırılmaz. Bu nedenle, kaynak programın ek bir işlemle, bilgisayarın anlayabileceği şekle çevrilmesi gerekir. Programın, derleyici veya yorumlayıcılar kullanılarak "0" ve "1" lerden oluşan makine diline dönüştürülmüş son haline objektif kod denilmektedir. Objektif kod, bilgisayar tarafından hemen uygulanabildiği halde, insanlar tarafından kolayca anlaşılamaz. Programdaki gizli bilgiler ve teknikler, ancak objektif kodun ters işlemle kaynak koduna çevrilmesi suretiyle öğrenilebilir. Bunu zorlaştırmak için programlar, objektif kod şeklinde piyasaya sürülmektedir.
Kullanıcı Arayüzü (User Interface) Programların hemen hemen hepsi uygulamaya konulduğunda, giriş verilerini klavyeden almak ve istenilen çıkışları monitörden görüntülemek suretiyle kullanıcı ile ilişkiye girecektir. İşte bir programda, kullanıcı ile bilgisayar arasında haberleşmeyi sağlayan unsura kullanıcı arayüzü denilmektedir. Aynı zamanda bilgisayar programının bak ve hisseti (look and feel) olarak da kabul edilen kullanıcı arayüzünün hukuki niteliği konusunda ABD hukukunda hararetli tartışmalar yapılmaktadır. Kullanıcı arayüzü, birisi fonksiyonel, diğeri audiovisual (görsel - işitsel) olmak üzere iki unsurdan oluşmaktadır.
Bilgisayar Programlama Dilleri Bilgisayar üreticisi firmalar, başlangıçta kendi ürettikleri bilgisayarı çalıştıracak programlama yöntemini kendileri geliştiriyorlardı. Zamanla, bilgisayar cihazından bağımsız olarak konuya ve amaca yönelik programlar hazırlanmaya başlandı. Böylece, hazırlanan programlama yöntemlerinin, değişik bilgisayar cihazlarında kullanılması mümkün oldu. Bu programlama yöntemleri de, giderek "programlama dilleri" haline geldiler. Programlama dillerinin oluşturulmasındaki amaç, bir dilin bütün bilgisayar cihazlarında kullanılmasının sağlanmasıdır. Fakat uygulamada, IBM uyumlu makineler ve Apple-Macintosh ailesi gibi gruplaşmalar ortaya çıktığından, bu amaca yeteri kadar ulaşılamamıştır. Bilgisayar programlama dilleri konuşma diline yakın olup olmamasına göre, düşük seviyeli programlama dilleri ve yüksek seviyeli programlama dilleri olmak üzere ikiye ayrılır.
Düşük Seviyeli Programlama Dilleri Konuşma diline oldukça uzak, buna karşılık makine diline oldukça yakın olan diller, düşük seviyeli programlama dilleri grubuna girer. Bu dil grubu da Makine Dili ve ASSEMBLY Dili olarak ikiye ayrılır.
Yüksek Seviyeli Programlama Dilleri Bu grubun kapsamına giren diller, İngilizce konuşma diline yakın olan dillerdir. Bu nedenle bu dilleri kullanarak program yazmak, düşük seviyeli dillere oranla çok daha kolaydır. Yüksek seviyeli programlama dilleri, programcıların tüm ihtiyaçlarına cevap verebilmek için, çeşitli özelliklere sahip çok sayıda komut içermektedir. Böylece, programcıya, düşündüklerini programa dönüştürebilmesi için bir çok imkan sağlanmış olmaktadır. Üst düzey programlama dilleri ile program yazmak ve hata ayıklamak daha kolaydır. Bu diller genelde taşınabilirlik özelliğine sahiptirler. Donanım konusunda uzmanlık gerektirmezler. Ada, Basic, Cobol, Fortran, Module-2, PL/I ve Pascal gibi diller, yüksek seviyeli diller grubuna girerler. Diğer yandan, düşük ve yüksek seviyeli dillerin özelliklerine sahip diller arasında sayılabilecek bazı diller de vardır. Bunlar arasında C, Forth, Macro Assembler dili sayılabilir. Yukarıda sayılan dillerden başka, değişik amaç, yaklaşım, teknik ve yapılara sahip Algol, APL, Eiffel, Lisp, Jawa, Perl, Prolog, Simula ve Smalltalk gibi birçok programlama dili vardır.
Bilgisayar Programlarının Sınıflandırılması Dünyanın dört bir köşesinde amatör veya profesyonel programcılar tarafından sürekli olarak geliştirilen milyonlarca farklı program, üç ana grup altında toplanabilir: 1. Sistem Programları2. Çevirici Programları3. Uygulama Programları
Sistem Programları Sistem programları, bilgisayarın işletimine yönelmişlerdir. En basit tanımıyla, uygulama programlarının çalıştırılması sırasında bilgisayara yol gösteren ya da bilgisayar sistemine kendi kendisini nasıl çalıştıracağını tarif eden programlara sistem programları adı verilir. İşletim sistemleri (Operating System - OS), sistem programlarına örnek olarak gösterilebilir. Bir işletim sistemi, merkezi işlem biriminin (CPU) operasyonlarını ve kullanıcıların sistem ile iletişimini kontrol eden çeşitli programların oluşturduğu bir kümedir. Kişisel veya mikro bilgisayarlar için geçerli işletim sistemi programlarının başlıcaları, Apple-DOS, CP/M, MS-DOS, IBM-DOS, OS/2, PC-DOS, UNIX ve XENIX'tir. Bilgisayar üreticisi firmalar, ürettikleri bilgisayarların kullanacağı işletim sistemini programını da kendileri hazırlamaktadırlar. İşletim sistemi programları, bilgisayarın sisteminde yer alan disket veya disketlere kaydedilmiş olarak bilgisayarla birlikte satışa arz edilmektedir.
Çevirici Programlar Makine dili hariç, diğer programlama dilleri ile hazırlanan programlar bilgisayar tarafından anlaşılmamaktadır. Bu programları bilgisayarın anlayacağı dile dönüştüren programlara çevirici programlar denilir.Çevirici programların fonksiyonu, birbirinin dilinden anlamayan iki ayrı kişinin anlaşmasını sağlayan tercümanların ya da herhangi bir dil ile yazılmış bir kitabı başka bir dile dönüştüren çevirmenlerin işlevinden farksızdır. Çevirici programlar, program geliştiricileri tarafından hazırlanmış kaynak programları, ilk satırdan son satıra kadar okuyup, makinenin anlayacağı dile çevirerek objektif programın oluşturulmasını sağlar. Çevirici programlar, çevirim sırasında tercüman veya çevirmen fonksiyonu göstermelerine göre, yorumlayıcılar ve derleyiciler olmak üzere ikiye ayrılır.
Yorumlayıcılar Yorumlayıcılar tıpkı tercümanlar gibi çalışır. Farklı iki dili konuşan kişinin arasında yer alan tercüman, önce söylenen cümleyi dinler, yorumlar, diğer dile dönüştürür ve bunu diğer dili konuşan kişiye aktarır. Tercüme, konuşmanın tamamı bitmeden, cümle cümle yapılır. Aynı şekilde, program geliştiricisi tarafından bir programlama dilinde yazılan bir program çalıştırıldığında, yorumlayıcının çevirim fonksiyonu başlar. Yorumlayıcı, kaynak kodunun bütününü değil, programı oluşturan komutları tek tek ele alır, yorumlar, makine diline dönüştürür ve bilgisayarın mikro işlemcisine iletir. Mikro işlemcinin belirtilen komutu yerine getirmesini bekler ve bir sonraki komuta geçer.
Derleyiciler Derleyici programların çalışma tarzı da çevirmenlere benzer. Çevirmenler, herhangi bir dilde yazılmış bir kaynak dokümanı, bir bütün halinde başka bir dile çevirirler.Kaynak programın yazılmasını tamamladıktan sonra, bu programın tamamının makine diline dönüştürülmesi gerekir. Derleyici programlar bu noktada devreye girer. Derleyici, kaynak programın tamamını okur, yorumlar ve makine diline çevirir. Bu çevirim işlemine derleme denilmektedir. Derleme işlemi sona erdiğinde, makine dilinde oluşan objektif program elde edilir. Derleyici tarafından üretilen objektif program, belli bir isim altında disk veya diskete kayıt edilir. Bundan sonra derleyici programı görevi sona erer. Artık işlem sırası, geliştirilen programın kullanımına gelmiştir.Derleyici programlar, yorumlayıcı programlara göre, bellek ve hız konusunda daha avantajlıdır. Buna karşılık, derleyici program, yazım ve hata bulma konusunda da dezavantaja sahiptir. Geliştirilen programda bir hata yapılmışsa, bu hatanın ne olduğu ve nerede yapıldığını tespit etmek çok zordur. Halbuki yorumlayıcı kullanılması halinde, programların düzeltilmesi ve hataların bulunması son derece kolaydır.
Uygulama Programları Uygulama programları (application program), kullanıcılara ait özel bir işin yapılması amacıyla yazılan programlardır. Bu programlar, profesyonel yazılım firmaları, üniversiteler veya kullanıcının bizzat kendisi tarafından yazılmış olabilir. Bu tür programlara paket programlar da denilmektedir.Word Star veya Word gibi kelime işlem programlarının, Lotus veya Excel gibi tablo analizi programlarının, Dbase veya SQL gibi veri tabanı programlarının, Moon Star veya Ventura gibi masa üstü yayıncılık programlarının, Logo Gold gibi çek - senet takibi veya muhasebe programlarının, Ajanstuba veya Corpus gibi hukuk programlarının her biri birer uygulama programıdır.