Programlama Dillei
-
Upload
ismail-yesilyurt -
Category
Documents
-
view
242 -
download
0
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.