PROGRAMLAMA DİLİ Program kelime olarak şartlara ve düzene göre yapılması gereken işlemlerin bütünü anlamına gelir.Program terimi ise bilgisayara yada elektronik devrelere yaptırılması gereken işi bir dizi komutlar olarak yazmaktır. Programlama dilleri sayesinde bilgisayara hangi işi nasıl yapması gerektiğini öğretiyoruz ve o da insan dan daha hızlı olarak işlevi yerine getiriyor. Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının tektipleştirilmiş yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar. Şu ana kadar 150’den fazla programlama dili yapılmıştır. Bunlardan bazıları Pascal, Basic, C, C#, C++, Java, Cobol, Perl, Python, Ada, Fortra n, Delphi ve 1C Enterprise'dır. UYGULAMA Donanım ve yazılımın bir veya daha fazla yapılandırması o programı çalıştırmak için bir tür yol sağlar. Programlama dili uygulamasında iki yaklaşım vardır:Derleme ve yorumlama. Herhangi bir tekniği kullanarak bir programlama dili uygulamak mümkündür. Genellikle donanım üzerinde çalışanlar yazılım üzerinde yorumlananlardan daha hızlıdır. Yorumlanan programların performansını geliştirmek için anında derleme programları kullanılır. Derleyiciden gelen çıktı ya donanım tarafından ya da yorumlayıcı diye adlandırılan programlar tarafından çalıştırılır. Cihaza komut göndermeyi sağlayan, verileri cihaza aktarma stilidir. Şu anda hemen hemen tüm yazılım dilleri İngilizcedir. Bazı uygulamaların dili ise İspanyolca olarak kullanılmaya başlanmıştır. Programlama dilleri insanların algılamasına yakın olmasına göre üçe gruba ayrılır: Alt seviye programlama dilleri: Makine koduna oldukca yakın programlama dilleridir.Makina hakimiyeti oldukca gelişmiştir.Bu programlama dillerini bilen kişilerin mikro işlemciler hakkında bilgi sahibi olması gereklidir.(Assembly programlama dili gibi) Orta seviye programlama dilleri: Oldukça esnek olan bu diller hem üst hem alt seviye programlama yapabilirler. Alt seviye dillere oranla biraz daha anlaşılırdır. (C programlama dili gibi.) Üst seviye programlama dilleri: Olay tabanlı programlama dilleri olarak da adlandırılırlar yalnız bu programlama dilleri sadece belirli fonksiyonlar etrafında çalışırlar ve programlama hakimeyitini azaltırlar. En hızlı ve en etkili programlama dilleri bu kategoridedir. (visual basic ve pic basic pro gibi) Diğer programlama dillerine kıyasla daha kolay öğrenildiği ve uygulandığı için yeni başlayanlara en uygun diller üst seviye programlama dilleridir. Programlama dilleri uygulama alanlarına göre dörde ayrılır: Bilimsel ve Mühendislik Alanında : Üniversitelerde ve bilimsel kuruluşlarda mühendislik veya matematik hesapları için kullanılan bu dillere örnek; Pascal, C, C++, Java dilleridir. Veritabanı Kullanımında : Genellikle Personel kayıtları, fabrika stok veya depo denetimi gibi veritabanı gerektiren işlemlerde kullanılan diller;DBASE,SQL,FOXPRO,PARADOX gibi veritabanı dilleridir. Sistem Programcılığında : İşletim sistemlerinin ve sistem programlarının yazılımında kullanılan dillere örnek, C ,C++ ,Java ve makina dilleridir. Genel Amaçlı kullanım : Çeşitli konularda uygulama geliştirmek için kullanılan dillere örnek,C ,C++ ,Java ,VB ve Pascal'ı verebiliriz. Son yıllarda programlama dillerinde nesneye yönelik tasarımlar yapılmış ve bu dillerin çoğunun nesneye yönelik programlama yapabilen uyarlamaları çıkmıştır. Nesneye yönelik programlama, programcının kendi sınıfını ve nesnesini oluşturup bunun üzerinde işlemler yapmasına olanak sağlayan ve programlama dillerinin geldiği son aşamalardan birisidir. Bu konu oldukça kapsamlı olup bunun geniş açıklamasını burada yapmayacağım. OOP(Object Oriented Programming) yani Nesneye Yönelik Programlama'nın kullanılmasıyla ve Visual programcılığın da gelişmesi ile beraber ortaya oldukça güzel görünümlü ve kullanışlı programlar çıkmaya başladı. Bu bilgisayar programlarına olan ilgiyi arttırdı ve bu konulardaki araştırmaları hızlandırdı. Sonuçta şu anda, pekçok dilin artık nesneye yönelik olan ve visual özellikler içeren sürümleri kullanılmakta ve tercih edilmektedir. Örneğin: C++ ,Visual C++ ,C++ Builder ,Delphi ,Java... İnternet'in de yaygınlaşmasıyla programlama dillerine yeni özellikler eklendi ve internet'te kullanılabilecek nitelikte görsel özellikli diller çıkarıldı. Örneğin HTML, kullanıcının dikkatini çeken renkli ve hareketli arabirimiyle her geçen gün yeni ekler ile gelişmektedir. JavaScript ve VBScript iki script dili olarak HTML'ye getirdiği ek özelliklerle çokça kullanılır oldu. Ve asp ile veri tabanını aktif kullanıma sunma, aktif sayfalar hazırlama olanağı elde edildi. Görüldüğü gibi özellikle internet'in gelişmesi ile birlikte programlama dillerinin yapılacak işe veya kullanılacak platforma göre değişik özellikler gösteren uyarlamaları çıktı. Bu durumda web teknolojisini izleyen ve internet üzerinde yazılım geliştirmek isteyen bir programcının javascript ,vbscript ,java ,HTML gibi dilleri bilmesi ve bu konularda kendini geliştirmesi gerekir. Uygulama programlarına ,ticari programlara, veya işletim sistemlerinin kullanımına yönelik yazılım geliştirmek isteyen programcıların da C++ ,Java ,Delphi gibi son zamanların en popüler dilleri üzerinde çalışması, bunları öğrenmesi gerekir. Internet programcılığı, esnek mimari, OOP gibi konularda söylenmesi gereken önemli bir nokta da Java'nın programlama dünyasına getirdiği önemli bir özelliktir. Java nın çıkması ile atılan önemli bir adım da platform'dan yani işletim sisteminden bağımsız olarak çalışan, her sistemde çalışabilen, programların yazılabilmesidir. İleriye yönelik bir bakış açısı ile bakıldığında cep bilgisayarlarının, kablosuz cihazların, cep telefonlarının sıklıkla kullanılacağı ve artık PC lerin döneminin kapanmaya başladığı düşünülürse birçok cihazda çalışabilecek programların yazılmasının önemi anlaşılabilir. Java son yıllarda programlama dünyasına gelmiş en iyi programlama aracıdır ve yeni çıkacak programlama dillleri de Java'nın birçok özelliğinden esinlenmektedir. PROGRAMLAMA DİLLERİNİN GELİŞİMİ Birinci Nesil Programlama Dilleri – Makine Dilleri Birinci nesil programlama dilleri ilk bilgisayarlarla birlikte ortaya çıkan programlama ihtiyacını karşılakamk üzere geliştirilen ve tamamen geliştirildiği makinenin (machine) özelliklerine odaklı (machine-level) makine seviyesi dillerdi. Bilinen makine dillerinden örnekler: • ARM • Intel 80x86 • IBM 360 • MIPS R2000|R3000 • MOS Tech 6502 • Motorola 680x • Power Architecture - (POWER and PowerPC) • StrongARM • Sun SPARC, UltraSPARC İkinci Nesil Programlama Dilleri – Çevirici Diller İnsanlar tarafından makine dillerine oranla daha anlaşılır olan (human-readable) bu diller assembly – çevirmen diller olarak bilinirler. Bilinen bazı çevirici diller: • ASEM-51 [1] • BAL (Basic AssembLer) • COMPASS (COMPrehensive ASSembler) • Emu8086 • FAP (FORTRAN Assembly Program) • FASM (Flat Assembler; IA-32, IA-64) • GAS (GNU Assembler) • HLA (High Level Assembly) • MASM (Microsoft Macro Assembler) • NASM (Netwide Assembler) • NEAT (National's Electronic Autocoder Technique) • TASM (Turbo Assembler, Borland) Üçüncü Nesil Programlama Dilleri – Yapısal Diller Programlama dillerinin günümüzde yaygın kullanılan ve bilinen türlerinin geliştirildiği nesil, üçüncü nesildir. İngilizce ağırlıklı olarak insanların kullandığı dillere yakın, yüksek seviyede (insana yakın) yapısal dillerdir. Yapısal dillerden örnekler: • Fortran • ALGOL • COBOL • BASIC • C • C++ • Delphi • Java Dördüncü Nesil Programlama Dilleri – Çözüme Yönelik Diller Üçüncü nesil dillerin programlama anlalmında çok çiddi ilerlemeler sağlamasına rağmen, ticaret ve iş yaşamında özel durumlara yönelik hızlı çözümler geliştirebilme ihtiyacı dördüncü nesil programlama dillerinin gelişimine neden olmuştur. Örnek araçlar: • Informix-4GL • Progress 4GL • SQL • Oracle Forms /Reports • PostScript • RPG-II • Gauss • ABAP • Mathematica • PL/SQL • Progress 4GL • SPSS • Borland Delphi • MATLAB's GUIDE • Windows Forms • Powerbuilder • Progress Dynamics • ColdFusion Beşinci Nesil Programlama Dilleri Beşinci nesil programlama dilleri programcının algoritma geliştirerek çözüm geliştirmesinin ötesinde, koşulları ve kısıtları bilgisayara verdiğinizde, bilgisayarın çözümü kendisinin bulmasına yönelik olarak tasarlanmaktadır. PROGRAMLAMA DİLLERİNİN TARİHÇESİ Programlama dillerinin nesil nesil gelişimini inceledikten sonra sıra tarihsel gelişimleri üzerinden geçmeye geldi. Programlama dillerinin gelişimi, bilgisayarların gelişimine paralel olarak yol almıştır. Bu noktada ilk elektronik dijital bilgisayarların ilan edilmesi 1940’lı yıllarda olmasına rağmen, çok daha öncesinden bu alanda çalışmalar yapıldığını görüyoruz. 1940 Öncesi 1837 yılında bir İngiliz profösörü olan Charles Babbage, çok amaçlı kullanım için geliştirdiği hesaplayıcısına bir sırılama/komut seti oluşturdu. Babbage ilk olarak 1837 yılında açıkladığı “Analytical Engine Order Code” çalışmalarını 1871 yılına kadar sürdürdü. Her ne kadar araç politik, ekonomik ve yasal sebeplerle yaygınlaşmasa da kayıtlara geçen ilk programlama dili olarak kabul edilmektedir. Daha sonraları, 1950’li yılların sonlarında, Howard Aiken Analytical Engine Order Code’u baz alarak “CPC Coding Schema” yı geliştirdi. Ve 1949’da Robert Seeber CPC Coding Schema temellerinden yola çıkarak “Seeber Coding Schema” yı açıkladı. 1940’lı Yıllar “ENIAC Coding System” ilk elektronik dijital bilgisayarlardan olan Electronic Numerical Integrator and Computer (ENIAC) için 1943 yılında geliştirilmiştir. John Von Neumann, John Mauchly, J. Presper Eckert ve Herman Goldstine’in başını çektiği ekip tarafından geliştirilen dilin üzerine 1946 yılında “Eniac Short Code”, 1947 yılında Kathleen Booth tarafından “ARC Assembly”, 1948’de Haskell Curry tarafından “Curry Notation System” , 1949’da John Mauchly ve William F. Schmitt tarafından “Brief Code” ve yine 1949 yılında Betty Holberton tarafından “C-10” dilleri geliştirilmiştir. 1943 - Plankalkül (Konrad Zuse) 1943 - ENIAC coding system 1949 - C-10 1950’li ve 1960’lı Yıllar Bu yıllar modern programlama dillerinin temellerinin atıldığı yıllardır. 1951 - Regional Assembly Language 1952 - Autocode 1954 - FORTRAN (FORmula TRANslator) 1958 - LISP (LISt Processor) 1958 - ALGOL (ALGOrithmic Language) 1959 - COBOL (COmmon Business Oriented Language) 1962 - APL (A Programming Language) 1962 - Simula 1964 - BASIC (Beginner's All-purpose Symbolic Instruction Code) 1964 - PL/I (Programming Language One) 1970’li Yıllar Bu yıllarda programlama dilleri olgunlaşmaya, çeşitlenmeye başladığı ve yapısal programlama dillerinin geliştirildiği yıllardır. 1970 - Pascal 1972 - C 1972 - Smalltalk 1972 - Prolog 1973 - ML 1978 - SQL 1980’li Yıllar 1980’li yıllar daha geniş sistemler için ölçeklenebilir uygulamalar geliştirebiliecek dillerin doğduğu yıllardır. Bu yıllar nesne yönelimli programlamanın (Object Oriented Programming) çokça konuşulduğu yıllardı. 1983 - Ada 1983 - C++ 1985 - Eiffel 1987 - Perl 1989 - FL (Function Level) 1990’lı Yıllar İnternetin yaygınlaşmasıyla birlikte, internetle çok ciddi anlamda bütünleşen Java dilinin geliştirildiği ve yaygınlaştığı yıllardı oldu 1990’lar. 1990 - Haskell 1990 - Python 1991 - Java 1993 - Ruby 1995 - PHP 1995 - Delphi 2000 - C# Şimdi programlama dillerine özet bir bakış yapalım; Pascal Yapısal bir dildir, C 'ye benzerlik gösterir. Öğrenilmesinin zor olmayışı ve bilgisyar eğitimi veren okullarda okutulan bir ders olması sebebiyle kullanım alanı genelde üniversiteler ve bilimsel hesaplamalar yapan kurumlardır. BASIC öğrenmesi ve yazılımları kolay olan bir dildir. Genelde amatörce ve hobi uğraşıları için kullanılmıştır. Microsoft daha sonra Kişisel bilgisayarlar için Quick Basic derleyicisi piyasaya sürmüştür. Bununla yazılan BASIC metinlerini makine koduna çevirilebilmiş böylece sürat kazanmıştır. Bugün halen geniş bir kullanım alanına sahip olan Visual Basic dili var olup bununla hatta Windows'un belirli bölümleri yazılmıştır. Her Microsoft Office paketinde bir BASIC türevi var olup makro programlamada büyük kolaylıklar getirmektedir. Yapısal programlama dilleri arasındadır. Öğrenilmesi zaman almasına rağmen oldukça kullanışlı ve esnek yapısı ile adından yıllarca bahsettirmiş, bilgisayar programcılığının temel dillerinden biridir. C ile bilgisayarınıza bir sistem yazmaktan bir oyun yazmaya veya printer kontrolü yapmaya kadar her türlü işlem yapılabilir ve bu özelliği sayesinde kullanım alanı çok geniş bir dildir. Nesneye dayalıdır(OOP). C++ ın ve Java'nın pozitif yönlerini bünyesinde birleştirmiş yeni bir dildir. Programcıya internet uygulamaları ve yerel uygulamalar yazmakta bazı kolaylıklar getirmiştir. İleriye dönük olarak microsoft'un java teknolojisine rakip olarak ortaya sürdüğü bir programlama dilidir ve microsoft'un bu konulardaki (internet uygulamaları) yelpazesini genişletmeye yönelik bir atılımdır. Microsoft teknolojileri kullanacak programcıların C#'ı öğrenmeleri zamanla gerekecektir ve öncelikle öğrenilmeye başlanması da avantaj getireceği açıktır. Nesneye yönelik programlama yapabilen diller arasındadır. C'nin saydığımız tüm özelliklerine ek olarak güçlendirilmiş nesne yönetim özelliği ile şu anda bilgisayar dünyasının en çok kullanılan dillerinden biridir Nesneye yönelik dillerdendir. Son yıllarda geliştirilmiş bir dil olup modern ve yenlikçi altyapısı ve visual özellikleri ve sürekli gelişen kütüphane (library) desteği ile gün geçtikçe kullanımı artan bir dil olmuştur. Java dili hemen hemen her alanda kullanılabilen esnek ve güçlü bir dildir. Günümüzde COBOL'un bulunduğu konum çok önemlidir. Bunun nedenlerinden biri Microsoft tarafından 2001 yılında piyasaya sürülen .NET Framework 1.1 versiyonu ile desteklenmeye başlamış olmasıdır. Gelişen ticaret dünyasına ve bunun yanında gelişen yapay zeka teknolojisine destek vermek amacı ile Microsoft tarafından destek verilmiştir. Perl, bir dil bilimci olup NASA'da sistem yöneticisi olarak çalışan LARRY Wall tarafından geliştirilmiş bir programlama dilidir. Yoğun şekilde metin işleme ve görüntü tanıma söz konusu olduğunda kullanılabilecek en güçlü ve pratik programlama dilidir. 22 yıldır geliştirilen ve özgür yazılım çerçevesinde kaynak kodu açık olarak sunulan Perl programlama dili hemen hemen tüm işletim sistemlerinde çalışmaktadır. Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir. Girintilere dayalı basit sözdizimi, dilin öğrenilmesini ve akılda kalmasını kolaylaştırır. Bu da ona söz diziminin ayrıntıları ile vakit yitirmeden programlama yapılmaya başlanabilen bir dil olma özelliği kazandırır. Ada, yapısal, statik tipli, zorunlu, geniş spektrumlu ve nesne yönelimli bir üst düzey bilgisayar programlama dilidir. Fortran (önceleri FORTRAN), özellikle sayısal hesaplama ve bilimsel hesaplama için uygun olan genel amaçlı, yordamsal, zorunlu programlama dilidir. Pascal tabanlı bir dil olup nesneye yönelik programlama yapabilme özelliği taşır. Öğreniminin çok zor olmayışı ve üniversitelerde pascal eğitiminin ağırlıklı verilmesi nedenleriyle çoğu bilgisayar programlama öğrencisinin tercih ettiği bir dildir.Visual programlama özelliği taşır. KAYNAKÇA http://tr.wikipedia.org/wiki/Programlama_dili http://www.godoro.com/Divisions/Ehil/Mecmua/Magazines/A rticles/txt/html/article_ProgrammingAndLanguage.html http://www.robotiksistem.com/programlama_ dilleri_ozellikleri.html http://www.bilgiustam.com/programlama-dilinedir-turleri-nelerdir/ http://www.elektrikport.com/teknik-kutuphane/hangi-programlama-dilinisecmeliyim-programlama-dilleri-ve-uygulama-alanlar/8080#ad-image-0