Programlama Dillei

download Programlama Dillei

of 42

Transcript of Programlama Dillei

  • 7/31/2019 Programlama Dillei

    1/42

    Programlama Dilleri

    Yrd. Do. Dr. Altan MESUT

    1

  • 7/31/2019 Programlama Dillei

    2/42

    Programlama Dili Nedir?

    Programlama Dili, istenilen hesaplamalar yapmakiin, elde edilen veriyi saklamak iin ve girdi/ktaygtlarna veri gnderme/alma gibi ilemleri

    yapmak iin kullanlan dildir. Doal dillerde olduu gibi programlama dillerinde

    de belirli bir yazm kural (sentaks) vardr.

    Programlama dilleri ile sadece bilgisayarlar

    zerinde alan uygulamalar deil, ilemcisi vebellei bulunan dier elektronik cihazlarda alanuygulamalar da yazlr.

    2

  • 7/31/2019 Programlama Dillei

    3/42

    Derleyici Nedir?

    Derleyici (Compiler), bir bilgisayar dilinde yazlmolan kodu, bilgisayarn (yada elektronik cihazn)donanmna uygun makine diline eviren

    bilgisayar programdr. Derleyici ncelikle yazlan program kodunun

    doru yazlp yazlmadn kontrol eder, eerhatalar varsa bunlar programcya bildirir.

    Eer kod doru ise derleme yaplan sistemeuygun olan 0 ve 1lerden oluan makine kodunuretir (EXE dosyas).

    3

  • 7/31/2019 Programlama Dillei

    4/42

    Yorumlayc Nedir?

    Yorumlayc (Interpreter), bir programnkaynak kodunu derlemek yerine dorudansatr satr yrten bir programdr.

    BASIC gibi baz diller hem derleyici hemyorumlayc programlar ile kullanlabilir.

    JAVA dili, yorumlayc kullanmas nedeniyletanabilir (platform bamsz) bir yapya sahipolmutur.

    4

  • 7/31/2019 Programlama Dillei

    5/42

    Programlama Dillerinin Tarihesi

    1800ler

    Ada Lovelace, Bernoulli saylarnn CharlesBabbagen Analitik Makinesi (Analytical Engine)ile hesaplanmasn salayan bir yntem

    gelitirmitir. Bu hesaplama yntemi, birok tarihi tarafndan

    dnyadaki ilk bilgisayar program olarakdeerlendirilse de, buhar enerjisi ile alan

    analitik makine iin gelitirilen bu yntem, aslndabir programlama dili ile gelitirilen bir programdeildir.

    5

  • 7/31/2019 Programlama Dillei

    6/42

  • 7/31/2019 Programlama Dillei

    7/42

    Programlama Dillerinin Tarihesi

    1950ler 1951 ylnda UNIVAC I projesinde alan Grace Hopper ilk

    derleyiciyi tasarlamtr (A-0). FORTRAN (FORmula TRANslator) John W. Backus

    liderliindeki bir grup tarafndan 1954-1955 yllarnda IBM

    704 bilgisayar iin tasarlanmtr (ilk derleyicisi 1957de). LISP (LISt Processor) John McCarthy tarafndan 1956-1958

    yllar arasnda gelitirilmitir (ilk derleyicisi 1959da). ALGOL (ALGOrithmic Language), FORTRANdaki baz eksik

    noktalar gidermek iin 1958de gelitirilmi, 1960 ve

    1968de iki farkl uyarlamas yaplmtr. COBOL (COmmon Business Oriented Language) Grace

    Hopper tarafndan 1959 ylnda gelitirilmitir (ilk derleyicisi1961de).

    7

  • 7/31/2019 Programlama Dillei

    8/42

    Programlama Dillerinin Tarihesi

    1960lar

    Oslodaki Norve Hesaplama Merkezi tarafndan1962-1967 yllar arasnda gelitirilen Simula ilknesneye-ynelik programlama dilidir.

    1964 ylnda John George Kemeny ve ThomasEugene Kurtz tarafndan BASIC (Beginner's All-purpose Symbolic Instruction Code) diligelitirilmitir.

    PASCAL dili Niklaus Wirth tarafndan 1968-1969yllar arasnda gelitirilmi ve 1970teyaynlanmtr.

    8

  • 7/31/2019 Programlama Dillei

    9/42

    Programlama Dillerinin Tarihesi

    1970ler

    C programlama dili 1972 ylnda BellLaboratuarlarnda Dennis Ritchie tarafndangelitirilmitir (Dennis Ritchie daha nce Ken

    Thompson ile birlikte UNIX iletim sistemi ve Bprogramlama dili zerinde de almtr).

    Prolog dili de yine 1972 ylnda Alain

    Colmerauer ve Phillipe Roussel tarafndanFransada gelitirilmitir.

    9

  • 7/31/2019 Programlama Dillei

    10/42

    Programlama Dillerinin Tarihesi

    1980ler

    1979 ylnda Bjarne Stroustrup tarafndangelitirilmeye balanan C++ dili 1983 ylndatamamlanmtr.

    1986 ylnda Bertrand Meyer tarafndangelitirilen Eiffel programlama dili C++ gibinesneye-ynelik bir dildir.

    1987 ylnda Larry Wall tarafndan gelitirilen Perl

    dili, metin ileme ve grnt tanma sz konusuolduunda kullanlabilecek en gl dillerdenbiridir.

    10

  • 7/31/2019 Programlama Dillei

    11/42

    Programlama Dillerinin Tarihesi

    1990lar

    Windows tabanl uygulama gelitirmeyi salayanVisual Basic 1.0, Microsoft tarafndan 1991 ylndapiyasaya srld. (1998 ylna kadar 5 fakl srm

    daha gelitirildi). Java dili, Sun Microsystems mhendislerinden

    James Gosling tarafndan gelitirildi ve 1995ylnda ilk srm (1.0) yaynland.

    Dinamik web sayfalarnn yaratlmasndakullanlan PHP (Personal Home Page) dili RasmusLerdorftarafndan 1995te yaratld.

    11

  • 7/31/2019 Programlama Dillei

    12/42

    Programlama Dillerinin Tarihesi

    2000ler

    2000li yllarda Web Tabanl Programlamagiderek yaygnlam, ASP, JSP ve PHP dillerisrekli olarak yenilenmitir.

    .NET ats altnda alan C# (C Sharp), VB.NETve ASP.NET programlama dilleri 2001 ylndaMicrosoft tarafndan piyasaya srlmtr. .NET ats (.NET Framework), Microsoft tarafndan

    gelitirilen, ak nternet protokolleri vestandartlar zerine kurulmu komple bir"uygulama" gelitirme platformudur.

    12

  • 7/31/2019 Programlama Dillei

    13/42

    FORTRAN

    FORTRAN, IBM tarafndan IBM 704 bilgisayarzerinde fen ve mhendislik uygulamalarnprogramlamak amacyla 1950li yllarda

    gelitirilmeye balanm, 1960larda farkluyarlamalar gelitirilmeye devam etmitir(Fortran I: 1957, Fortran II: 1958, Fortran IV:1962, Fortran 66: 1966, )

    Sadece IF, GOTO, DO ifadelerini ieren basit bir dilolduu iin Pascal ve C gibi programlama dillerigelitirildikten sonra kullanm azalmtr.

    13

  • 7/31/2019 Programlama Dillei

    14/42

    FORTRANda Merhaba Dnya

    Bir dilin szdizimine rnek olarak yaygnbiimde bir "Merhaba Dnya" programgsterilir. Aada Fortran ile yazlm bir

    "Merhaba Dnya" program verilmitir:

    PROGRAM HELLO

    PRINT*, 'Hello World!'

    END

    14

  • 7/31/2019 Programlama Dillei

    15/42

    COBOL

    Saysal ilemlerin gerekletirilmesinde avantajsalayan FORTRAN dili giri/k (I/O) ilerindeyeterli deildir.

    Giri/k ilemlerinin olduka nemli olduuticari uygulamalar iin 1959 ylnda COBOL diligelitirilmitir.

    Saysal ve metin tr verilerin diziler vekaytlar gibi veri gruplar haline organizeedilmesini salamtr.

    15

  • 7/31/2019 Programlama Dillei

    16/42

    BASIC

    BASIC (Beginner's All-purpose SymbolicInstruction Code) renmesi ve yazmas kolayolan bir dildir.

    Bu nedenle genellikle bilgisayar bilgisi azolanlara programlama dili retmek iinkullanlr.

    Microsoft irketi tarafndan gelitirilen QBASIC(QuickBasic), MS-DOS iletim sisteminin bellisrmlerinin paras olarak sunulmutur

    16

  • 7/31/2019 Programlama Dillei

    17/42

    rnek bir QBASIC program

    'Belirtilen ki Sayy Toplar

    CLS

    INPUT "Birinci Sayy Giriniz:";A%INPUT "kinci Sayy Giriniz:";B%

    PRINT A% + B%

    END

    17

  • 7/31/2019 Programlama Dillei

    18/42

    Yapsal Programlama Nedir?

    1960l yllarn sonunda ortaya kan yapsalprogramlama (structured programming)kavram ile uzun ve karmak programlarn,

    bloklara ayrarak daha kolay biimdeyazlabilmesi mmkn olmaktadr.

    Yapsal programlamada programn belirli birsatrna gitmeye yarayan GOTO ifadesininkullanlmamas, yordamsal (prosedrel) biryapnn tercih edilmesi esastr.

    18

  • 7/31/2019 Programlama Dillei

    19/42

    ALGOL

    ABD ve Alman bilim insanlarnn evrensel birprogramlama dili stnde birlikte almalarsonucunda 1958de ortaya kmtr.

    John Backus ve Peter Naurtarafndan yaratlanBNF(Backus-Naur form) olarak bilinen formal

    dilbilgisine sahip ilk dildir.

    ALGOL dili kullanm zorluu nedeniyle yaygnolarak kullanlmam olsa da; BCPL, B, C, Simula,Pascal ve PL/I gibi birok dile nc olmutur.

    19

  • 7/31/2019 Programlama Dillei

    20/42

    PASCAL

    PASCAL programlama dili pek ok renciye bilgisayarprogramlamay reten ve eitli versiyonlar bugnhala yaygn olarak kullanlmaya devam eden en nemliprogramlama dillerinden biridir.

    Bilgisayar bilimcisi Niklaus Wirth 1970'te yapsalprogramlamay derleyiciler iin daha kolay ilenir halegetirebilmek amacyla PASCAL' gelitirmitir. Adnmatematiki ve dnr Blaise Pascal'dan almtr.

    Wirth, PASCAL'dan baka Modula-2 ve Oberon

    programlama dillerini de gelitirmitir. Bu diller Pascal'abenzerler ve ayrca nesneye ynelik programlamay dadesteklerler.

    20

  • 7/31/2019 Programlama Dillei

    21/42

    C

    AT&T Bell laboratuvarlarnda, Ken Thompson ve Dennis M.Ritchie tarafndan UNIX letim Sistemi'ni gelitirebilmekamacyla B dilinden tretilmi yapsal bir programlamadilidir.

    Gelitirilme tarihi 1972 olmasna ramen yaygnlamasBrian W. Kernighan ve Dennis M. Ritchie tarafndan 1978deyaymlanan "C Programlama Dili" kitabndan sonraolmutur.

    letim sistemleri, gml sistemler, src yazlm ve hzgereken her trl ilemde kullanlan bir dildir.

    70li ve 80li yllarda birok farkl uyarlamas gelitirildiktensonra, 1989da ANSI tarafndan standart bir C dilitanmlanmtr (ANSI C).

    21

  • 7/31/2019 Programlama Dillei

    22/42

    Pascal & C (1)

    Pascal ve C dilleri yaklak ayn zamanlardagelitirilmilerdir ve aralarnda nemlibenzerlikler vardr.

    Orijinal Pascal ile C'nin ikisi de yapsalprogramlama fikrini gerekletiren kk veprosedrel dillerdir.

    kisinde de dinamik bellek ayrma ve iareti(pointer) ileme mmkndr.

    Ancak, bu iki dil dardan bakldnda farklgrnrler (C programlar genelde Pascalprogramlarndan ksadr).

    22

  • 7/31/2019 Programlama Dillei

    23/42

    Pascal & C (2)

    Tartma yaratan farkllklardan bir tanesi; Pascalda atama iin := , karlatrma iin = kullanlr. C'de ise atama iin = , karlatrma iin == kullanlr. C'nin tasarmclar atama ileminin karlatrma

    ileminden daha sk kullanldn, dolaysyla ksa olaniaretin atama ilemi iin kullanlmas gerektiinisavunurlar.

    Pascal'n savunucular ise, yanllkla atama yapmannyanllkla karlatrma yapmaktan ok daha tehlikeliolduunu savunurlar.

    Bu savunma, eer, C'de olduu gibi, bir if ifadesi iindeatama yaplabiliyorsa, kesinlikle dorudur.

    23

  • 7/31/2019 Programlama Dillei

    24/42

    Pascal & C (3)

    Pascal, en azndan ksmi olarak, bir eitim dili olaraktasarlanmtr. Yanllklara yol aabilecek szdizimiyaplarndan kanlm, szdiziminin anlalmas kolayolmasna dikkat edilmitir.

    C'nin tasarmclar ise dili programlarn ksa olmas iintasarlamlardr. Bu iki dil arasndanki baka bir fark da, Pascal'n

    "strongly typed" olmasdr. Yani, bir deikenkullanlmadan nce belirli bir tipe sahip olmak zere

    tanmlanmaldr, ve fakl tiplerden iki deikenbirbirlerine atanamazlar. Bu snrlama pek okprogramlama yanln nler.

    24

  • 7/31/2019 Programlama Dillei

    25/42

    Pascal & C (4)

    C'nin tersine, Pascal'da iie fonksiyon

    tanmlamak mmkndr.

    Orijinal Pascal'da program paralar ayr ayrderlenemezler, ve derleme annda boyutubilinmeyen diziler kullanmak mmkn deildir.

    Ancak bu snrlamalar, Pascal'n baz

    versiyonlarnda kaldrlmtr.

    25

  • 7/31/2019 Programlama Dillei

    26/42

    PASCAL ve Cde Merhaba Dnya

    Program HelloWorld;

    uses wincrt;

    begin

    writeln('Merhaba Dnya');readln;

    end.

    26

    #include

    main() {

    printf("Merhaba Dnya");

    getchar();}

  • 7/31/2019 Programlama Dillei

    27/42

    Nesneye Ynelik Programlama

    NYP'nn altnda yatan ana fikir; her bilgisayarprogramnn, etkileim ierisinde olan birimlerveya nesneler kmesinden olutuu varsaymdr.

    Bu nesnelerin her biri, kendi ierisinde veriileyebilir, ve dier nesneler ile ift ynl verialveriinde bulunabilir.

    NYP'dan nce var olan yaklamda (yordamsal

    programlama), programlar sadece bir komut dizisiveya birer ilev (fonksiyon) kmesi olarakgrlmekteydiler.

    27

  • 7/31/2019 Programlama Dillei

    28/42

    C++

    Simula dili ile ortaya kan nesneye ynelikyaklam Bjarne Stroustrup tarafndan C dilineuyarlanm ve ortaya C++ kmtr (1983).

    Gnmzde en ok kullanlan dillerden biriolan C++, C dilinin hz ve esneklik gibi tm iyizelliklerini korumutur.

    1998 ylnda ANSI/ISO tarafndan StandardC++ yaynlanmtr.

    28

  • 7/31/2019 Programlama Dillei

    29/42

    JAVA

    Java, Sun Microsystems mhendislerinden JamesGosling tarafndan gelitirilmeye balanm akkodlu, nesneye ynelik, ortamdan bamsz,yksek verimli, ok ilevli, yksek seviye, adm

    adm iletilen (interpreted) bir dildir. Interaktif TVler ve kk cihazlarda kullanlmak

    zere tasarlanan JAVA, platform bamszlsayesinde geni kullanm alan buldu.

    JAVAnn senktaks C ve C++ dillerine benzemeklebirlikte daha basit bir nesne modeli ve daha az altseviye olanaklar ierir (iareti kullanm yoktur).

    29

  • 7/31/2019 Programlama Dillei

    30/42

    C#

    C++ ve JAVAnn iyi ynlerini bnyesindebarndran yeni bir dildir (2001).

    Bu dilin tasarlanmasna Pascal, Delphi derleyicileri

    ve J++ programlama dilinin tasarmlaryla bilinenAnders Hejlsberg liderlik etmitir.

    Microsoft tarafndan .NET ats zerinde

    gelitirilen (eski Visual J++n yerini alan) C#,JAVAya en nemli rakip olarak grlmektedir.

    C# grsel programlamaya da olanak salar.

    30

  • 7/31/2019 Programlama Dillei

    31/42

    C# ile Merhaba Dnya

    class MerhabaDunya

    {

    // Programn ilk girdii nokta

    static void Main(/*string[] args*/)

    {

    System.Console.WriteLine("Merhaba Dnya!");

    }

    }

    31

  • 7/31/2019 Programlama Dillei

    32/42

    Grsel Programlama Dilleri

    Grafik Kullanc Arabirimi (GUI: Graphical UserInterface) kullanan Windows, Linux gibi iletimsistemleri iin uygulama gelitirmeye yarayan yeninesil programlama dilleridir.

    Pencere iinde yer alan metin kutular, butonlar,tablolar gibi elemanlar program kodu yazarakdeil, grsel olarak pencereye yerletirmeyeolanak salar.

    Grsel dillerin ou, sk kullanlan baz yaplarnkodunu programa kendisi ekleyerek programcyakolaylk salar.

    32

  • 7/31/2019 Programlama Dillei

    33/42

    Visual Basic (VB)

    BASIC dilinden tretilen Windows tabanlprogram yazmay salayan bir dildir.

    BASICten farkl olarak yapsal (yordamsal) bir

    programlama dilidir. Kullanc says az olan veya ksa srede

    bitmesi gereken kk lekli projelerde tercih

    edilir. VB.NETten nceki son srm 1998de kan

    Visual Studio 6.0 paketinde yer almtr.

    33

  • 7/31/2019 Programlama Dillei

    34/42

    VB.NET

    Microsoft 2001 ylnda .NET adn verdiiuygulama gelitirme ortamn tantm ve buyapy (.NET Framework 1.0) kullanan VB.NET, C#gibi programlama dillerini Visual Studio .NET

    uygulama gelitirme paketiyle birlikte piyasayasrmtr. VB.NET, VBden farkl olarak nesneye ynelik bir

    dildir.

    ok biimlilik (polymorphism), kaltm (inheritance),veri soyutlama (data abstraction ) ve sarmalama(encapsulation) gibi tm NYP zelliklerini ierir.

    34

  • 7/31/2019 Programlama Dillei

    35/42

    Delphi

    PASCAL dilinden tretilen grsel programlama

    dilidir.

    Borland firmas tarafndan gelitirilen

    Delphinin ilk srm 1995 ylnda piyasayasrld (VBde olduu gibi neredeyse her seneyeni bir srm yaynland).

    2003 ylndan sonra .NET atsn kullananDelphi srmleri piyasaya srlmtr.

    35

  • 7/31/2019 Programlama Dillei

    36/42

    Web Tabanl Programlama

    Sunucunun sadece duraan (statik) sayfalaristemciye (ziyareti) gndermesi yerine,ziyaretiden veri kabul edilmesi (dinamikyaklam) gerekliliinin sonucunda ortaya kanprogramlama yaklamdr.

    Web tabanl uygulamalarn byk ldeplatform bamsz olmalar ve kurulum

    gerektirmeyen yapda olmalar (her yerdeneriilebilir ve bakm kolay) gnmzde bu truygulamalara olan ilgiyi arttrmtr.

    36

  • 7/31/2019 Programlama Dillei

    37/42

    PHP (Personal Home Page)

    PHP ilk kez Rasmus Lerdorf tarafndan, web sayfalarnziyaret edenleri izlemek amacyla bir dizi Perl Script(betik) kullanlarak gelitirilmiti.

    Ksa sre sonra baka insanlarnn ilgisini ekmeye

    balaynca, Rasmus bir script motoru oluturdu ve webformlarna da destek verdi ve bylece PHP/F1'ibiimlendirmi oldu.

    Adn duyurduka bir gurup yazlmcnn dikkatini ekti

    ve ortak bir alma sonucu PHP3 ortaya kt. Daha sonra Zend motoru kullanlarak PHP4 yaratld.

    37

  • 7/31/2019 Programlama Dillei

    38/42

    ASP (Active Server Pages)

    ASP ilk olarak 1996 ylnn sonundaMicrosoftun web sunucu uygulamas olan IIS(Internet Information Services) iin bir eklenti

    olarak ortaya kt. ASP.NET 2002 ylnda .NET Framework 1.0 ile

    birlikte piyasaya srld.

    .NET ats sayesinde ASP.NET kodu CLR(Common Language Runtime) kullananherhangi bir dil ile yazlabilmektedir.

    38

  • 7/31/2019 Programlama Dillei

    39/42

    JSP (Java Server Pages)

    JSP 1.0 srm 1999 ylnda Javann ASP vePHPye cevab olarak Sun Microsystemstarafndan piyasaya srld.

    1.2 srmnden sonra JSP Java Community

    Processtarafndan gelitirilmeye baland.

    Mays 2006da JSP 2.1 srm Java EE 5in bir

    paras olarak piyasaya srld.

    39

  • 7/31/2019 Programlama Dillei

    40/42

    Yapay Zeka Programlama

    Aslnda uzman sistemler ve doal dil ileme gibiyapay zeka uygulamalar BASIC'ten Pascal'a, C'denJava'ya kadar var olan programlama dillerinin

    hemen hemen hepsi ile yaplabilir. Fakat yapay zeka uygulamalar sz konusu

    olduunda daha pratik ve daha hzl program

    gelitirmemizi salayan baz diller vardr. Hattabaz diller zellikle yapay zeka uygulamalar iintasarlanmlardr.

    40

  • 7/31/2019 Programlama Dillei

    41/42

    LISP

    1958de MITde alan John McCarthy tarafndangelitirmitir.

    Alanzo Churchn lambda calculus yaklamn temelalan LISP, ksa srede yapay zeka aratrmalar iin en

    ok kullanlan dil haline gelmitir. erdii tek veri tr parantezler ile birbirinden ayrlm

    olan listelerdir (bu nedenle ismi LISt Processorkelimelerinden tretilmitir).

    lk programlama dillerinden biri olmas nedeniyle; aayaplar, otomatik saklama ynetimi ve i-derleyici gibibirok fikre nc olmutur.

    41

  • 7/31/2019 Programlama Dillei

    42/42

    PROLOG

    1970'li yllarn balarnda Fransa'nn Marseille Aixniversitesi'nde Alain Colmerauer ve almagrubu tarafndan icat edilmitir.

    Franszca "Programmation en Logique"kelimesinden gelmektir.

    Prolog mantksal ve sembolik dnmeye uygun

    yapsyla , problemin tanmlanmas ve zmiin gerekli yntemlerin gelitirilmesiaamalarnda programcya yardmc olan bir dildir.