Bölüm 4. Sözcüksel ve Sözdizimsel Analiz ISBN

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Bölüm 4. Sözcüksel ve Sözdizimsel Analiz ISBN"

Transkript

1 Bölüm 4 Sözcüksel ve Sözdizimsel Analiz ISBN

2 Bölüm 4 Konular Giriş Sözcüksel Analiz Ayrıştırma Problemi Özyineleme Kökenli Ayrıştırma Aşağıdan Yukarıya Ayrıştırma Resul Kara 2

3 4.1 Giriş Derleyici tasarımı üzerinde zaman harcanması gereken bir kavramdır Bu bölümde öncelikli olarak sözdizim analizi ele alınacaktır Sözdizimi analizörü bir derleyicinin kalbidir, çünkü anlamsal analizci ve ara kod üreteci de dahil olmak üzere birkaç önemli bileşen sözdizimi analizörünün eylemleri tarafından yönlendirilir Sözdizimi analizörleri doğrudan önceki bölümde işlediğimiz gramerlere dayanır Sözcük (lexem) ve sözdizim (syntax) analizcileri, derleyici tasarımı dışındaki birçok durum için de gereklidir Örneğin program biçimlendiriciler, programların karmaşıklığını hesaplayan programlar, bir yapılandırma dosyasının içeriğini analiz etmeli, bunun için de sözcük ve sözdizimi analizini yapmalıdırlar Dolayısıyla, sözcük sözdizimi ve sözdizimi çözümlemesi, yazılım geliştiricileri için derleyici tasarlamasalar bile bir ihtiyaçtır Resul Kara 3

4 4.1 Giriş Programlama dillerini uygulamak için üç farklı yaklaşım Bölüm 1'de verilmişti: derleme, saf yorumlama ve hibrid uygulama Derleme yaklaşımı, üst düzey bir programlama dilinde yazılmış programları makine koduna çeviren derleyici adlı bir programı kullanır, C ++ ve COBOL dillerinde olduğu gibi Saf yorumlama sistemleri çeviri yapmaz; Bunun yerine, programlar, bir yazılım yorumlayıcısı tarafından özgün biçiminde yorumlanır Saf yorumlama, HTML belgelerine yerleştirilen, JavaScript gibi dillerde yazılmış komut dosyaları gibi yürütme etkinliğinin kritik olmadığı daha küçük sistemler için genellikle kullanılır Hibrid uygulama sistemleri, üst düzey dillerde yazılmış programları yorumlanan ara formlara çevirir. Hibrit sistemler derleyicilere göre çok daha yavaş program yürütülmesine neden olmuştur. Bununla birlikte, son yıllarda Just-in-Time (JIT) derleyicileri kullanımı, özellikle Microsoft.NET ve Java ile yaygınlaştı Tartışılan uygulama yaklaşımlarının her üçünde de sözcüksel ve sözdizim analizcileri kullanılmaktadır. Resul Kara 4

5 4.1 Giriş Dil (language) implementasyon sistemleri, belirli implementasyon yaklaşımına aldırmadan kaynak kodu (source code) analiz etmelidir Hemen hemen bütün sözdizim analizörleri kaynak kodun sözdiziminin biçimsel tanımlamasına dayalıdır (BNF) Resul Kara 5

6 4.1 Giriş (Devamı) Bir dil işlemcisinin (language processor) sözdizim (syntax) analizi bölümü genellikle iki kısımdan oluşur: Bir düşük-düzeyli (low-level) kısım: sözcüksel analizörü (lexical analyzer), matematiksel olarak, kurallı bir gramere (regular grammar) dayalı bir sonlu otomasyon (finite automaton) Bir yüksek-düzeyli (high-level) kısım, sözdizim analizörü (syntax analyzer), veya ayrıştırıcı (parser) (matematiksel olarak, bağlamdan bağımsız gramere (context-free grammar) dayalı bir aşağı-itme otomasyonu (push-down automaton), veya BNF) Sözcük analizörü isimler ve sayısal literaller gibi küçük ölçekli dil yapılarıyla ilgilenir Resul Kara Sözdizimi analizörü, ifadeler ve program birimleri gibi 6

7 4.1 Giriş (Devamı) Sentaksı(syntax) tanımlamak için BNF kullanmanın nedenleri : Net ve özlü bir sözdizimi tanımı (syntax description) sağlar Ayrıştırıcı (parser) doğrudan BNF ye dayalı olabilir BNF ye dayalı ayrıştırıcıların bakımı daha kolaydır Resul Kara 7

8 4.1 Giriş (Devamı) Sözcüksel (lexical) ve sözdizimi (syntax) analizini ayırmanın nedenleri: Sadelik - Sözcüksel analiz teknikleri sözdizimi analizinden daha az karmaşıktır, bu nedenle sözcük analiz süreci ayrı ise, ayrıştırıcı daha basit olabilir. Ayrıca sözcüksel analizin alt düzey ayrıntılarını sözdizim analizcisinden kaldırmak, sözdizimi analizcisini hem daha küçük hem de daha az karmaşık hale getirir Verimlilik - Sözcüksel analiz toplam derleme zamanının önemli bir kısmını gerektirdiğinden sözdizimi analizörünü optimize etmek verimli değildir. Ayırma, bu seçici optimizasyonu kolaylaştırır Taşınabilirlik - Sözcüksel analizci girdi program dosyalarını okur ve sıklıkla bu girişi tamponlamayı içerdiğinden, platforma bağımlıdır yani taşınamayabilir. Bununla birlikte, sözdizimi çözümleyicisi platformdan bağımsız olabilir. Resul Kara Herhangi bir yazılım sisteminin makineye bağımlı bölümlerini izole etmek her zaman iyidir. 8

9 4.2 Sözcüksel(Lexical) Analiz Sözcüksel analizci aslında bir model eşleştiricisidir. Bir desen eşleştirici, verilen bir karakter kalıbıyla eşleşen belirli bir karakter dizesinin alt dizesini bulmaya çalışır Model eşleştirme, bilgisayarın geleneksel bir parçasıdır. İlk uygulamalardan biri UNIX'in ilk sürümlerinde yer alan ed editördür Bazı programlama dillerinde (Perl, JavaScript, Java, C++, C# gibi) standart sınıf kütüphaneleri ile yapılıyor Bir sözcük analizörü, bir sözdizimi analizörünün ön ucu olarak kullanılır Teknik olarak, sözcüksel analiz sözdizimi analizinin bir parçasıdır Sözcüksel analizci, en düşük düzeyde program yapısında söz dizimi analizi yapar Resul Kara 9

10 4.2 Sözcüksel(Lexical) Analiz Bir kaynak program, derleyiciye bir karakter dizisi olarak görünür Sözcüksel analizci, karakterleri mantıksal olarak gruplar ve yapılarına göre her bir gruba bir tanıtıcı atar Bu mantıksal gruplara lexeme (kelime), bunların kategorilerine sembol (token) adı verilir. Örnek: result = oldsum value / 100; result bir lexeme, onun tokenı identifier olabilir. 100 bir lexeme, tokenı tamsayı literal Resul Kara 10

11 4.2 Sözcüksel(Lexical) Analiz Sözcüksel analizciler belirli bir girdi dizgesinden lexemeleri çıkarır ve karşılık gelen sembolleri üretir Derleyicilerin ilk zamanlarında sözcüksel analizciler genelde bütün bir kaynak program dosyasını işler ve sembol ve lexemes dosyaları üretirlerdi Güncel derleyicilerde bulunan sözcüksel analizciler, giriş olarak uygulanan kaynak koddaki bir sonraki lexeme ı bulan, onun sembolünü belirleyen ve sözdizimi analizörüne geri döndüren altprogramlardır Böylece, sözcüksel analizciye yapılan her çağrı tek bir sözcük ve onun simgesini döndürür Sözdizimi çözümleyicisinin gördüğü, giriş kaynak programına ait sözcüksel analizcinin çıktısıdır Sözcüksel analiz süreci, programın anlamıyla alâkalı olmadığı için lexemelerin dışındaki boşluklar atlanır Ayrıca, sözcüksel analizci kullanıcı tanımlı isimler için lexeme'i, derleyicinin sonraki aşamalarında kullanılan sembol tablosuna ekler Resul Kara 11

12 4.2 Sözcüksel(Lexical) Analiz (Devamı) Sözcüksel analizci (lexical analyzer) oluşturmaya üç yaklaşım: Jetonların biçimsel tanımı (formal description) yazılır ve bu tanıma göre tablo-sürümlü (table-driven) sözcüksel analizciyi oluşturan yazılım aracı (software tool) kullanılır Jetonları (tokens) tanımlayan bir durum diyagramı (state diagram) tasarlanır ve durum diyagramını implemente eden bir program yazılır Jetonları (tokens) tanımlayan bir durum diyagramı(state diagram) tasarlanır ve el ile durum diyagramının(state diagram) tablo-sürümlü(table-driven) bir implementasyonu yapılır Sadece ikinci yaklaşımdan bahsedeceğiz Resul Kara 12

13 4.2 Sözcüksel(Lexical) Analiz (Devamı) Durum diyagramı (State diagram): Bir durum geçiş diyagramı veya kısaca sadece durum diyagramı, yönlendirilmiş bir graftır Durum diyagramındaki düğümler, durum adlarıyla etiketlenir Eğriler durumlar arasında geçişlere neden olan girdi karakterleriyle etiketlenir Eğriler sözcük analizcisinin geçiş gerçekleştirildiğinde yapılması işlemleri de içerebilir Sözcük analizciler için kullanılan formun durum diyagramları, sonlu otomata denilen matematiksel makinaların bir örneğidir Sonlu otomatlar, normal diller olarak adlandırılan bir dil sınıfının üyelerini tanıyacak şekilde tasarlanabilir Bir programlama dili jetonları düzenli bir dildir ve sözcüksel analizci sonlu bir otomattır. Resul Kara 13

14 4.2 Sözcüksel(Lexical) Analiz (Devamı) Durum diyagramı(state diagram) tasarımı: Saf (Naive) bir durum diyagramı kaynak dildeki her karakterde her durumdan bir geçişe (transition) sahip olacaktı böyle bir diyagram çok büyük olurdu! Resul Kara 14

15 4.2 Sözcüksel(Lexical) Analiz (Devamı) Çoğu kez, durum diyagramını basitleştirmek için geçişler birleştirilebilir Bir tanıtıcıyı (identifier) tanırken, bütün büyük (uppercase) ve küçük(lowercase) harfler eşittir Bütün harfleri içeren bir karakter sınıfı(character class) kullanılır Bir sabit tamsayıyı (integer literal) tanırken, bütün rakamlar(digits) eşittir bir rakam sınıfı(digit class) kullanılır Resul Kara 15

16 4.2 Sözcüksel(Lexical) Analiz (Devamı) Özgül sözcükler(reserved words) ve tanıtıcılar(identifiers) birlikte tanınabilir (her bir özgül sözcük(reserved word) için programın bir parçasını almak yerine) Olası bir tanıtıcının(identifier) aslında özgül sözcük(reserved word) olup olmadığına karar vermek için tabloya başvurma(table lookup) kullanılır Resul Kara 16

17 4.2 Sözcüksel(Lexical) Analiz (Devamı) Kullanışlı yardımcı altprogramlar (utility subprograms): getchar girdinin(input) sonraki karakterini alır, bunu nextchar içine koyar, sınıfını (class) belirler ve sınıfı(class) charclass içine koyar addchar - nextchar dan gelen karakteri lexemenin biriktirildiği yere koyar, lexeme arama(lookup) - lexeme deki stringin özgül sözcük(reserved word) olup olmadığını belirler (bir kod döndürür) Resul Kara 17

18 Durum Diyagramı(State Diagram) Resul Kara 18

19 4.2 Sözcüksel(Lexical) Analiz (Devamı) implementasyon (başlatma(initialization) varsayalım): int lex() { getchar(); switch (charclass) { case LETTER: addchar(); getchar(); while (charclass == LETTER charclass == DIGIT) { addchar(); getchar(); } return lookup(lexeme); break; Resul Kara 19

20 4.2 Sözcüksel(Lexical) Analiz(Devamı) case DIGIT: addchar(); getchar(); while (charclass == DIGIT) { addchar(); getchar(); } return INT_LIT; break; } /* switch in sonu */ } /* lex fonksiyonunun sonu */ Resul Kara 20

21 4.3 Ayrıştırma (Parsing) Problemi Ayrıştırıcının amaçları, bir girdi (input) programı verildiğinde : Bütün sentaks hatalarını (syntax errors) bulur; her birisi için, uygun bir tanılayıcı (diagnostic) mesaj üretir, ve hemen eski haline döndürür (recover) Ayrıştırma ağacını (parse tree) üretir, veya en azından program için ayrıştırma ağacının izini (dökümünü) (trace) üretir Resul Kara 21

22 4.3 Ayrıştırma(Parsing) Problemi (Devamı) Ayrıştırıcıların(parser) iki kategorisi vardır: Yukarıdan aşağıya (Top down): Ayrıştırma ağacını (parse tree) kökten (root) başlayarak oluşturur Sıra, ensol türevindir (leftmost derivation) Ayrıştırma ağacını (parse tree) preorderda izler veya oluşturur Aşağıdan yukarıya (Bottom up): Ayrıştırma ağacını (parse tree), yapraklardan (leaves) başlayarak oluşturur Sıra, ensağ türevin (rightmost derivation) tersidir Ayrıştırıcılar (parser) girdide (input) sadece bir jeton (token) ileriye bakar Resul Kara 22

23 4.3 Ayrıştırma(Parsing) Problemi (Devamı) Yukarıdan aşağıya ayrıştırıcılar (Top-down parsers) Bir xaa sağ cümlesel formu ( right sentential form) verildiğinde, ayrıştırıcı (parser), sadece A nın ürettiği ilk jetonu (token) kullanarak, ensol türevdeki (leftmost derivation) sonraki cümlesel formu (sentential form ) elde etmek için doğru olan A-kuralını seçmelidir Burada x:terminal sembol, A: nonterminal sembol, a: karma sembol En yaygın yukarıdan-aşağıya ayrıştırma (top-down parsing) algoritmaları: Özyineli azalan (recursive-descent)- kodlanmış bir implementasyon LL ayrıştırıcılar (parser) tabloya dayalı (table driven) implementasyon Resul Kara 23

24 4.3 Ayrıştırma(Parsing) Problemi (Devamı) Aşağıdan-yukarıya ayrıştırıcılar (bottom-up parsers) Bir a sağ cümlesel formu (right sentential form) verildiğinde, a nın sağ türevde önceki cümlesel formu üretmesi için azaltılması gerekli olan, gramerde kuralın sağ tarafında (right-hand side) olan altstringinin (substring) ne olduğuna karar verir En yaygın aşağıdan-yukarıya ayrıştırma (bottom-up parsing) algoritmaları LR ailesindedir Resul Kara 24

25 4.3 Ayrıştırma (Parsing) Problemi (Devamı) Ayrıştırmanın Karmaşıklığı (Complexity of Parsing) Herhangi bir belirsiz-olmayan gramer (unambiguous grammar) için çalışan ayrıştırıcılar karmaşık ve verimsizdir: O(n 3 ) [n girdi uzunluğu olmak üzere] Derleyiciler(compilers), sadece bütün belirsiz-olmayan gramerlerin (unambiguous grammars) bir altkümesi için çalışan ayrıştırıcıları kullanır, fakat bunu lineer sürede yapar: O(n) [n girdi uzunluğu olmak üzere] Resul Kara 25

26 Özyineleme Kökenli Ayrıştırma Gramerdeki her bir non-terminal için o non-terminal tarafından üretilebilen cümleleri ayrıştıran bir alt program vardır EBNF özyineleme kökenli ayrıştırıcılara taban olması için ideal ölçüde uygundur; çünkü EBNF non-terminallerin sayısını minimize eder Resul Kara 26

27 Özyineleme Kökenli Ayrıştırma(devam) Basit ifadeler için bir gramer: <expr> <term> {(+ -) <term>} <term> <factor> {(* /) <factor>} <factor> id ( <expr> ) Resul Kara 27

28 Özyineleme Kökenli Ayrıştırma(devam) nexttoken ın içine bir sonraki token kodunu koyan lex isimli bir sözcüksel çözümleyicimiz olduğunu varsayalım Sadece bir sağ taraf olduğu zamanki kodlama süreci: Sağ taraftaki her bir terminal sembolü bir sonraki girdi token ıyla karşılaştır; eğer eşleşirse devam et, eşleşmezse hata vardır Sağ taraftaki her bir non-terminal sembol için onunla ilişkili olan ayrıştırma alt programını çağır Resul Kara 28

29 Özyineleme Kökenli Ayrıştırma(devam) /* Function expr Parses strings in the language generated by the rule: <expr> <term> {(+ -) <term>} */ void expr() { /* Parse the first term */ term(); Resul Kara 29

30 Özyineleme Kökenli Ayrıştırma(devam) /* As long as the next token is + or -, call lex to get the next token, and parse the next term */ while (nexttoken == PLUS_CODE nexttoken == MINUS_CODE){ lex(); term(); } } Bu özel program hataları yakalamaz Gelenek: her ayrıştırma programı bir sonraki token ı nexttoken a bırakır Resul Kara 30

31 Özyineleme Kökenli Ayrıştırma(devam) Birden fazla sağ tarafı olan bir non-terminal hangi sağ tarafın ayrıştırılacağına karar vermek için bir başlangıç sürecine gereksinim duyar Doğru sağ taraf girdinin bir sonraki token ı baz alınarak (ileri bakış) seçilir Bir sonraki token eşleşme bulunana kadar her sağ taraf, tarafından üretilen ilk token la karşılaştırılır Eğer eşleşme bulunmazsa bu bir sözdizimi hatasıdır Resul Kara 31

32 Özyineleme Kökenli Ayrıştırma(devam) /* Function factor Parses strings in the language generated by the rule: <factor> -> id (<expr>) */ void factor() { /* Determine which RHS */ if (nexttoken) == ID_CODE) /* For the RHS id, just call lex */ lex(); Resul Kara 32

33 Özyineleme Kökenli Ayrıştırma(devam) /* If the RHS is (<expr>) call lex to pass over the left parenthesis, call expr, and check for the right parenthesis */ else if (nexttoken == LEFT_PAREN_CODE) { lex(); expr(); if (nexttoken == RIGHT_PAREN_CODE) lex(); else error(); } /* End of else if (nexttoken ==... */ } else error(); /* Neither RHS matches */ Resul Kara 33

34 Özyineleme Kökenli Ayrıştırma(devam) LL Gramer Sınıfı Sol Özyineleme Problemi Eğer bir gramerin dolaylı ya da doğrudan sol özyinelemesi varsa, o bir yukarıdan aşağıya ayrıştırıcıya baz olamaz Bir gramer sol özyinelemeyi kaldırmak için yenilenebilir Resul Kara 34

35 Özyineleme Kökenli Ayrıştırma(devam) Yukarıdan aşağıya ayrıştırmaya izin vermeyen gramerlerin bir başka özelliği ikili ayırmanın olmayışıdır İlerdeki bir token baz alınarak doğru sağ tarafa karar verme problemi Tanım: FIRST(a) = {a a =>* ab } (Eğer a =>* e, e FIRST(a) dadır) Resul Kara 35

36 Özyineleme Kökenli Ayrıştırma(devam) İkili Ayırma Testi: Her bir kural çifti, A a i ve A a j, için birden fazla sağ tarafı olan gramerdeki her bir A nonterminali için FIRST(a i ) FIRST(a j ) = f doğru olmalı Örnekler: A a bb cab A a ab Resul Kara 36

37 Özyineleme Kökenli Ayrıştırma(devam) Sol çarpanlarına ayırma problemi çözebilir <variable> identifier identifier [<expression>] ifadesini <variable> identifier <new> <new> e ya da [<expression>] <variable> identifier [[<expression>]] (dıştaki parantezler EBNF nin meta sembolleridir) ile yer değiştir Resul Kara 37

38 Aşağıdan Yukarıya Ayrıştırma Ayrıştırma problemi, derivasyonda bir önceki sağ cümlesel forma erişimi indirgemek için bir sağ cümlesel formdaki doğru sağ tarafı bulmaktır Resul Kara 38

39 Aşağıdan Yukarıya Ayrıştırma(devam) Kollar hakkında sezgi: Tanım: b, sağ cümlesel formun kolu g = abw ancak ve ancak S =>*rm aaw =>rm abw olursa Tanım: b, sağ cümlesel formun parçasıdır g ancak ve ancak =>* g = a 1 Aa 2 =>+ a 1 ba 2 olursa Tanım: b, sağ cümlesel form g nın basit parçasıdır ancak ve ancak S =>* g = a 1 Aa 2 => a 1 ba 2 olduğu zaman Resul Kara 39

40 Aşağıdan Yukarıya Ayrıştırma(devam) Kollar hakkında sezgi: Sağ cümlesel formun kolu onun en sol basit parçasıdır Bir ayrıştırma ağacı verilmişken kolu bulmak kolaydır Ayrıştırma sap(kol) budama olarak düşünülebilir Resul Kara 40

41 Aşağıdan Yukarıya Ayrıştırma(devam) Kaydır-İndirge Algoritmaları İndirgeme, ayrıştırma yığınının en üstündeki dalı ona karşılık gelen sol tarafla yer değiştirme hareketidir Kaydırma, bir sonraki token ı ayrıştırma yığınının en üstüne götürme hareketidir Resul Kara 41

42 Aşağıdan Yukarıya Ayrıştırma(devam) LR ayrıştırıcılarının avantajları: Programlama dillerini tanımlayan hemen hemen tüm gramerler için çalışırlar Diğer aşağıdan yukarıya algoritmalardan daha büyük gramer sınıfı üzerinde çalışırlar; fakat diğer aşağıdan yukarıya ayrıştırıcılar kadar verimlidirler Sözdizimi hatalarını mümkün olduğunca yakalarlar Gramerlerin LR sınıfı, LL ayrıştırıcılar tarafından ayrıştırılabilen sınıfın bir üst kümesidir Resul Kara 42

43 Aşağıdan Yukarıya Ayrıştırma(devam) LR ayrıştırıcılar bir araçla kurulmalı Knuth un sezgisi: bir aşağıdan yukarıya ayrıştırıcı, ayrıştırma kararlarını vermek için mevcut noktaya kadarki tüm ayrıştırma geçmişini kullanabildi Sonlu ve nispeten az sayıda muhtemel ayrıştırma durumu vardı, dolayısıyla geçmiş, bir ayrıştırma yığını üzerinde bir ayrıştırıcı durumunda depolanabilirdi Resul Kara 43

44 Aşağıdan Yukarıya Ayrıştırma(devam) Bir LR konfigürasyonu, bir LR ayrıştırıcısının durumunu depolar (S 0 X 1 S 1 X 2 S 2 X m S m, a i a i +1 a n $) Resul Kara 44

45 Aşağıdan Yukarıya Ayrıştırma(devam) LR ayrıştırıcıları tabloya dayalıdırlar, öyle ki tablolar ACTION ve GOTO tabloları olmak üzere iki parçaya sahiptir ACTION tablosu ayrıştırıcının durumu ve bir sonraki token verilmişken ayrıştırıcının hareketini belirler Satırlar durum isimleri; sütunlar terminaller GOTO tablosu indirgeme hareketi olduktan sonra ayrıştırma yığınının en üstüne hangi durumun koyulacağını belirler Satırlar durum isimleri; sütunlar non-terminaller Resul Kara 45

46 Bir LR Ayrıştırıcısının Yapısı Resul Kara 46

47 Aşağıdan Yukarıya Ayrıştırma(devam) Başlangıç konfigürasyonu: (S 0, a 1 a n $) Ayrıştırıcının hareketleri: Eğer ACTION[S m, a i ] = Kaydır S ise bir sonraki konfigürasyon: (S 0 X 1 S 1 X 2 S 2 X m S m a i S, a i+1 a n $) Eğer ACTION[S m, a i ] = İndirge A b ve S = GOTO[S m-r, A], r = b nın uzunluğu, ise bir sonraki konfigürasyon: (S 0 X 1 S 1 X 2 S 2 X m-r S m-r AS, a i a i+1 a n $) Resul Kara 47

48 Aşağıdan Yukarıya Ayrıştırma(devam) Ayrıştırıcının hareketleri (devam): Eğer ACTION[S m, a i ] = Kabul ise ayrıştırma bitmiştir ve hiçbir hata bulunmamıştır. Eğer ACTION[S m, a i ] = Hata ise ayrıştırıcı hatayla başa çıkan bir programı çağırır. Resul Kara 48

49 LR Ayrıştırma Tablosu Resul Kara 49

50 Aşağıdan Yukarıya Ayrıştırma(devam) Bir ayrıştırma tablosu verilen bir araçtan, ör., yacc, üretilebilir Resul Kara 50

51 Özet Sözdizimi analizi dil uygulamalarının ortak bir kısmıdır Bir sözcük çözümleyicisi programdaki küçük ölçekli kısımları izole eden bir doku eşleştiricisidir Sözdizimi hatalarını yakalar Bir ayrıştırma ağacı üretir Bir özyineleme kökenli ayrıştırıcı, bir LL ayrıştırıcıdır EBNF Aşağıdan yukarıya ayrıştırıcılar için ayrıştırma problemi: mevcut cümlesel formun alt dizisini bulma Kaydır-İndirge ayrıştırıcılarının LR ailesi en yaygın Resul aşağıdan Kara yukarıya ayrıştırma yaklaşımıdır 51

Bölüm 4. Sözcüksel ve sözdizimsel analiz ISBN

Bölüm 4. Sözcüksel ve sözdizimsel analiz ISBN Bölüm 4 Sözcüksel ve sözdizimsel analiz ISBN 0-321-49362-1 Bölüm 4 Konular giriş Sözcüksel Analiz Ayrıştırma(parsing) problemi Özyinelemeli aşağıya iniş ayrıştırma(recursive-descent Parsing) Aşağıdan-yukarıya

Detaylı

Bölüm 4. Sözcük ve Sentaks Çözümlemesi ( Analizi) ISBN

Bölüm 4. Sözcük ve Sentaks Çözümlemesi ( Analizi) ISBN Bölüm 4 Sözcük ve Sentaks Çözümlemesi ( Analizi) ISBN 0-321-49362-1 Bölüm 4 Konuları Giriş Sözcük çözümlemesi Ayrıştırma (parsing) problemi Özyineleyerek inen ayrıştırma (Recursive- Descent Parsing) Aşağıdan-yukarı

Detaylı

Semantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks ve semantik bir dilin tanımı sağlar

Semantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks ve semantik bir dilin tanımı sağlar PDP 3 1 Sentaks (Syntax): ifadelerin (statements), deyimlerin (expressions), ve program birimlerinin biçimi veya yapısı Semantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks

Detaylı

Syntax Analysis. 4/5/2004 Formal Diller 4.1

Syntax Analysis. 4/5/2004 Formal Diller 4.1 Syntax Analysis Her programlama dilinin yazilan bir programin syntax olarak dogru olup olmadigini belirleyen kurallari vardir. Programlama dillerinin syntactic yapisi Contex-Free Grammer / BNF (Backus-Naur

Detaylı

Bölüm 3. Sentaks ve semantik tarifi ISBN 0-321-49362-1

Bölüm 3. Sentaks ve semantik tarifi ISBN 0-321-49362-1 Bölüm 3 Sentaks ve semantik tarifi ISBN 0-321-49362-1 Bölüm 3 Konuları Giriş Genel olarak sentaks tarifi Sentaks tarifinin matematiksel yöntemleri Özellik gramerleri (Attribute Grammars) Programların anlamını

Detaylı

Tokenlarin Taninmasi

Tokenlarin Taninmasi Tokenlarin Taninmasi stmt t if expr then stmt if expr then stmt else stmt expr t term relop term term term t id num if, then, else, relop, id, ve num terminal (token), stmt, expr, term nonterminal olarak

Detaylı

Bölüm 3. Söz Dizilimi ve Anlamı Tanımlama ISBN

Bölüm 3. Söz Dizilimi ve Anlamı Tanımlama ISBN Bölüm 3 Söz Dizilimi ve Anlamı Tanımlama ISBN 0-321-49362-1 Bölüm 3 Konular Giriş Söz Dizimi Tanımlamadaki Genel Problem Söz Dizimi Tanımlamanın Biçimsel Yöntemleri Gramerlerin özellikleri Programların

Detaylı

YZM Biçimsel Diller ve Otomata Teorisi. Ders#06

YZM Biçimsel Diller ve Otomata Teorisi. Ders#06 YZM 3229- Biçimsel Diller ve Otomata Teorisi Ders#06 İçerikten Bağımsız Diller İçerikten Bağımsız Diller (Context-Free Languages) Şu ana değin Düzenli Dilleri İfade Etmek için Kullanılabilecek Yapıları

Detaylı

BLM210 HAFTA 2 FORMAL METHODS OF SYNTAX DESCRIPTION (SÖZDİZİM TARİFİNİN BİÇİMSEL YÖNTEMLERİ)

BLM210 HAFTA 2 FORMAL METHODS OF SYNTAX DESCRIPTION (SÖZDİZİM TARİFİNİN BİÇİMSEL YÖNTEMLERİ) 1 BLM210 HAFTA 2 FORMAL METHODS OF SYNTAX DESCRIPTION (SÖZDİZİM TARİFİNİN BİÇİMSEL YÖNTEMLERİ) Programming language implementors must be able to determine how the expressions, statements, and program units

Detaylı

BAĞLAMDAN BAĞIMSIZ (CONTEXT-FREE) GRAMERLER (CFG) VE DİLLER (CFL)

BAĞLAMDAN BAĞIMSIZ (CONTEXT-FREE) GRAMERLER (CFG) VE DİLLER (CFL) BAĞLAMDAN BAĞIMSIZ (CONTEXT-FREE) GRAMERLER (CFG) VE DİLLER (CFL) Dil tanıyıcı cihaz bir dile ait geçerli string leri kabul eder. Dil üreteci cihaz bir dile ait string leri oluşturur. Dil üreteci cihazlar

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 1

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 1 FORMEL DİLLER VE SOYUT MAKİNALAR Hafta 1 DİL VE FORMEL DİL KAVRAMLARI Dil, insanların karmaşık iletişim sistemlerini edinme ve kullanma becerisidir. Bir dilin formel olabilmesi için bazı niteliklerinin

Detaylı

Konular. Hafta 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Konular. Hafta 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından faydalanarak

Detaylı

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 2

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 2 FORMEL DİLLER VE SOYUT MAKİNALAR Hafta 2 OTOMATA TEORİSİ Otomata teorisi (özdevinim kuramı ya da otomat teorisi), teorik bilgisayar biliminde soyut makineleri (ya da daha uygun bir deyimle soyut 'matematiksel'

Detaylı

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI BISON AYRIŞTIRICI (PARSER) ÜRETECİ

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI BISON AYRIŞTIRICI (PARSER) ÜRETECİ 1 KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI BISON AYRIŞTIRICI (PARSER) ÜRETECİ Bison, durumdan bağımsız gramerler (CFG, Context-free grammar) için LALR

Detaylı

Derleyici Kuramı (Compiler Theory)

Derleyici Kuramı (Compiler Theory) Derleyici Kuramı (Compiler Theory) Yrd. Doç. Dr. Şadi Evren ŞEKER Bu sunum, İstanbul Üniversitesi, Bilgisayar Mühendisliği, BMG dersi kapsamında hazırlanmıştır ve kavramlara genel bir giriş yapmayı hedefler.

Detaylı

BAĞLAMDAN BAĞIMSIZ VE BAĞLAMDAN BAĞIMSIZ OLMAYAN DİLLER (CONTEXT-FREE AND NON-CONTEXT-FREE LANGUAGES)

BAĞLAMDAN BAĞIMSIZ VE BAĞLAMDAN BAĞIMSIZ OLMAYAN DİLLER (CONTEXT-FREE AND NON-CONTEXT-FREE LANGUAGES) BAĞLAMDAN BAĞIMSIZ VE BAĞLAMDAN BAĞIMSIZ OLMAYAN DİLLER (CONTEXT-FREE AND NON-CONTEXT-FREE LANGUAGES) Context-free dillerin üretilmesi için context-free gramer ler kullanılmaktadır. Context-free dillerin

Detaylı

1.1. Yazılım Geliştirme Süreci

1.1. Yazılım Geliştirme Süreci Kazanımlar Bu bolümde; Yazılım geliştirme sureci konusunda bilgi sahibi olacak, Yazılım geliştirme surecinde gerekli olan araçları tanıyacak, Python dilinde program geliştirme ortamlarını inceleyebileceksiniz.

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 8 Problem Tanımı Arama Ağaçları İkili Arama

Detaylı

Java String İşlemleri

Java String İşlemleri Java String İşlemleri Karakterler (Characters) "char" kelimesi bir karakter tanımlamak için kullanılır. Karakter tek tırnak içine alınmalıdır. Bir char'ın aralığı 0 ile 65536 arasındadır. Char türü işaretsiz

Detaylı

! " # $ % & '( ) *' ' +, -. /) /) 0 # /) %, %, 1 2

!  # $ % & '( ) *' ' +, -. /) /) 0 # /) %, %, 1 2 !"#$ %& '()*' ' +,-./) /) 0 #/) %,%, 12 $$(/3#/ " '$$(/34" '$$(//44 / 4 /4/ 4# ##4" 5-6/'$##/" 7#! a(a * b * )b regular expression ile önce bir a üretilir. Ardından iki durumdan birisine göre devam edilir.

Detaylı

Formal Diller Ve Otomat Teorisi

Formal Diller Ve Otomat Teorisi Formal Diller Ve Otomat Teorisi Ismail Kadayif Canakkale Onsekiz Mart Universitesi Bilgisayar Muhendisligi 4/5/2004 Formal Diller 1.1 Strings ve Languages (Diller) alphabet (character set): Sonlu sayida

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 4 Stack (Yığın, Yığıt) Veri Yapısı Stack Çalışma

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği

Detaylı

Gramer Tabanlı Değerlendirme Yöntemleri

Gramer Tabanlı Değerlendirme Yöntemleri Gramer Tabanlı Değerlendirme Yöntemleri 1. Giriş Bir gramer biçimsel bir dilde karakter dizileri yada kelimeler oluşturabilen kurallar seti olarak ifade edilir. Kurallar, dil alfabesini kullanarak, dilin

Detaylı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

VT Sistem Gerçeklemesi. Ders Notları- #8

VT Sistem Gerçeklemesi. Ders Notları- #8 VT Sistem Gerçeklemesi Remote: Kullanıcıdan gelen JDBC isteklerini karşılar. Planner: SQL ifadesi için işleme planı oluşturur ve karşılık gelen ilşkisel cebir ifadesini oluşturur. Parse: SQL ifadesindeki

Detaylı

Regular Expression vs. Context-Free Grammars. Ambiguity. NFA to CFG. Neden RE ler kullanilir?

Regular Expression vs. Context-Free Grammars. Ambiguity. NFA to CFG. Neden RE ler kullanilir? Ambiguity Ambiguous Grammar: Bazi sentence lar icin birden fazla parse tree ureten grammarlere denir. Ambiguous Grammar ler bazi sentence lari birden fazla leftmost/rightmost derivation larla utetirler.

Detaylı

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013. Ad, Soyad Öğrenci No.

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013. Ad, Soyad Öğrenci No. Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013 Ad, Soyad Öğrenci No. : : Öğretim Üyesi: Doç. Dr. Zeki BAYRAM Süre: 100 dakika Talimatlar:

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

Bölüm1. İlk Bilgiler ISBN 0-321-49362-1

Bölüm1. İlk Bilgiler ISBN 0-321-49362-1 Bölüm1 İlk Bilgiler ISBN 0-321-49362-1 Bölüm 1 Konuları Niye Programlama Dilleri prensiplerini öğreniyoruz? Programlama alanları Dil değerlendirme kriterleri Dit tasarımına etkiler Dil kategorileri Dil

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

! " # $ % & '( ) *' ' +, -. /.,

!  # $ % & '( ) *' ' +, -. /., !"#$ %& '()*' ' +,-./.,-. 0 12.30.420 ,-./.,-,-.5' $-.5 6# #",-.5 2(3 # #",-.5 6') 7 2(3 87" $-.5.$-.5) 7 # * ",222 2 #5# * #)7 #7",-./.,- Theorem: Context-free diller union, concatenation ve Kleene star

Detaylı

DERLEYİCİ TASARIMI ÖDEV-2 RAPORU

DERLEYİCİ TASARIMI ÖDEV-2 RAPORU DERLEYİCİ TASARIMI ÖDEV-2 RAPORU Nadia Erdoğan Mustafa Cantürk (Image generated by unlicensed version of UMLStudio.) Sınıf tanımları: Token: tokenize() fonksiyonu sonucunda gelen stringi Token lara ayrılır.

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

Bölüm 8. İfade Seviyesindeki Kontrol Yapıları ISBN

Bölüm 8. İfade Seviyesindeki Kontrol Yapıları ISBN Bölüm 8 İfade Seviyesindeki Kontrol Yapıları ISBN 0-321-49362-1 Bölüm 8 Konular Giriş Seçme İfadeleri Yinelemeli İfadeler Şartsız Dallanma Korumalı Komutlar Sonuçlar Kontrol Akışının Seviyeleri İfadeler

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Koşul Karşılaştırma Operatörleri Mantıksal

Detaylı

Bilgisayar Programlama Dilleri

Bilgisayar Programlama Dilleri Bilgisayar Programlama Dilleri Ömer YÜCEL 13253072 1/32 Sunum İçeriği 1. Program ve Programlama Dili Nedir? 2. Programlama Dillerinin Tarihçesi 3. Programlama Dillerinin Sınıflandırılması 4. Programlama

Detaylı

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. DERS İÇERİĞİ VE KAYNAKLAR Veri Yapıları (VY) dersinde görülmesi muhtemel

Detaylı

İnternet Programcılığı Dersi 2.Dönem Ders Notu

İnternet Programcılığı Dersi 2.Dönem Ders Notu İnternet Programcılığı Dersi 2.Dönem Ders Notu DEĞİŞKEN TİPLERİ TAM SAYI (İNTEGER) VERİ TİPİ Negatif veya pozitif ondalık kısmı bulunmayan sayılardır. Örnek: $i=65; $x=345; ONDALIK(REAL)VERİ TİPİ Ondalıklı

Detaylı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

Detaylı

BIM 202 - Bahar 2011. Programlama Dilleri

BIM 202 - Bahar 2011. Programlama Dilleri BIM 202 - Bahar 2011 Programlama Dilleri Prof. Dr. Tuğrul Yılmaz e-posta: tyilmaz@mu.edu.tr Tuğrul Yılmaz - Pamukkale Üniversitesi 1 Sözdizim (syntax) ve Anlambilim (Semantics) Her programlama dilindeki

Detaylı

Dilbilgisi ve Diller

Dilbilgisi ve Diller Dilbilgisi ve Diller Doç.Dr.Banu Diri 1. Her biçimsel dil belirli bir alfabe üzerinde tanımlanır. 2. Alfabe sonlu sayıda simgelerden oluşan bir kümedir. 3. Alfabedeki simgelerin arka arkaya getirilmesi

Detaylı

Sentaks (Syntax): ifadelerin (statements), deyimlerin (expressions), ve program birimlerinin biçimi veya yapısı

Sentaks (Syntax): ifadelerin (statements), deyimlerin (expressions), ve program birimlerinin biçimi veya yapısı Sentaks (Syntax): ifadelerin (statements), deyimlerin (expressions), ve program birimlerinin biçimi veya yapısı PDP 3 Semantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 5 Veri Tipleri (Devam) Yrd. Doç. Dr. Melike Şah Direkoğlu Konular Dizi Tipleri Kayıt Tipleri Birleşik Tipler Küme Tipleri İşaretçi ve Referans Tipleri Alındığı

Detaylı

Bir algoritma aşağıdaki ğ dki özelliklere sahip komutların sonlu bir kümesidir.

Bir algoritma aşağıdaki ğ dki özelliklere sahip komutların sonlu bir kümesidir. BÖLÜM 4 Bir algoritma aşağıdaki ğ dki özelliklere sahip komutların sonlu bir kümesidir. Kesinlik : Algoritma adımları kesin olarak tespit edilmelidir. Bir teklik: Her bir adımın yürütülmesinde sonuçlar

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

Otomata Teorisi (BİL 2114)

Otomata Teorisi (BİL 2114) Otomata Teorisi (BİL 2114) Hafta 2: Sonlu Otomata (1.Bölüm) bas kapa aç bas 1 Hafta 2 Plan 1. Bir Sonlu Otomata Orneği 2. Sonlu Otomatanin Esasları 3. Sonlu Otomatanın Resmi Gösterimi 4. Nondeterministik

Detaylı

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Öncelikli kuyruk konusunu hatırlayın. Kuyruğa sonradan eklenmesine rağmen öncelik

Detaylı

Sınav tarihi : Süre : 60 dak.

Sınav tarihi : Süre : 60 dak. Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Final Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 31.05.2016 Süre : 60 dak. 1. Ekranda ne görüntülenir? int i =

Detaylı

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir. İST 205 Bilgisayar Programlama III C Programlamaya Giriş ve Matematiksel-İstatistiksel Uygulamalar Y.Doç.Dr. Levent Özbek Ankara Üniversitesi Fen Fakültesi İstatistik Bölümü Tel: 0.312.2126720/1420 ozbek@science.ankara.edu.tr

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

Akademik Rapor Hazırlama ve Yazışma Teknikleri

Akademik Rapor Hazırlama ve Yazışma Teknikleri Akademik Rapor Hazırlama ve Yazışma Teknikleri BLM2881 2015-1 DR. GÖKSEL Bİ R İ C İ K goksel@ce.yildiz.edu.tr Ders Planı Hafta Tarih Konu 1 16.09.2015 Tanışma, Ders Planı, Kriterler, Kaynaklar, Giriş Latex

Detaylı

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar Algoritma ve Programlamaya Giriş mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar İçerik Algoritma Akış Diyagramları Programlamada İşlemler o o o Matematiksel Karşılaştırma Mantıksal Programlama

Detaylı

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

PROGRAMLAMAYA GİRİŞ DERS NOTLARI PROGRAMLAMAYA GİRİŞ DERS NOTLARI PROGRAM Bilgisayar en basit olarak üç ana görevi yerine getiren bir makinedir. Girilen bilgiyi alır (INPUT), işler (PROCESSING) ve bu işlenmiş veriden bir sonuç (OUTPUT)

Detaylı

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 4 Ders 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından

Detaylı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

C Dersi Bölüm 1. Bilgisayar Donanımı

C Dersi Bölüm 1. Bilgisayar Donanımı C Dersi Bölüm 1 M Bodur 1 Bilgisayar Donanımı Bilgisayarın yapısını ve çalışma prensiplerini bilmemiz Bir bilgisayar programından neler bekleyebileceğimizi anlamamızı sağlar. Bigisayar dört temel birimden

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı

Arasınav Soruları Bahar 2018

Arasınav Soruları Bahar 2018 Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Arasınav Soruları Bahar 2018 Süre: 75 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza Tarih

Detaylı

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN Bilgisayar Mühendisliğine Giriş Yrd.Doç.Dr.Hacer KARACAN PROGRAMLAMA DİLLERİ Programlama Dilleri ni neden öğrenmeliyiz? Programlama alanları Dil değerlendirme kriterleri Dil tasarımı üstündeki etkiler

Detaylı

Bölüm 10. Altprogramları Uygulamak

Bölüm 10. Altprogramları Uygulamak Bölüm 10 Altprogramları Uygulamak Altprogramları Uygulamak -- Başlıklar Çağrıların genel anlam analizi Basit altprogramların gerçekleştirilmesi Yığıt dinamik yerel değişkenlerle altprogramları uygulamak

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. I. GİRİŞ Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. İnsanların elle yaptığı ve yapmakta olduğu bir çok

Detaylı

Ağaç (Tree) Veri Modeli

Ağaç (Tree) Veri Modeli Ağaç (Tree) Veri Modeli 1 2 Ağaç Veri Modeli Temel Kavramları Ağaç, bir kök işaretçisi, sonlu sayıda düğümleri ve onları birbirine bağlayan dalları olan bir veri modelidir; aynı aile soyağacında olduğu

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

Bölüm 3. Sözdizimi(Syntax) ve Anlamsal(Semantics) Tanımlama ISBN 0-321-49362-1

Bölüm 3. Sözdizimi(Syntax) ve Anlamsal(Semantics) Tanımlama ISBN 0-321-49362-1 Bölüm 3 Sözdizimi(Syntax) ve Anlamsal(Semantics) Tanımlama ISBN 0-321-49362-1 Bölüm 3 Konuları Giriş Sözdizim(Syntax) tanımlamanın genel problemi Sözdizim(Syntax) tanımlamada resmi metotlar Özellik Gramerleri

Detaylı

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir. PHP'nin Temelleri PHP Nedir? PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler (operatörler), işlemcilerle oluşturulan deyimler ve nihayet

Detaylı

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar EM205 26/9/2014 Programlamaya giriş Algoritmalar Temel kavramlar Algoritmalar Amaçlar Algoritma kavramını öğrenmek, Algoritmaları ifade edebilmek, Temel matematiksel algoritmaları yazabilmek C programlama

Detaylı

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 3

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 3 FORMEL DİLLER VE SOYUT MAKİNALAR Hafta 3 Karmaşıklık CHOMSKY HİYERARŞİSİ 0 1 2 3 Özyinelemeli - Sayılabilir Diller : Turing Makinesi (Recursively Enumerable Languages : Turing Machine) Bağlama - Duyarlı

Detaylı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

Detaylı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde

Detaylı

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer

Detaylı

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları Güven Fidan AGMLAB Bilişim Teknolojileri 18/10/11 GRID ÇALIŞTAYI 2007 1 MapReduce Nedir? Büyük data kümelerini işlemek ve oluşturmak

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için,

İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için, PDP 7 1 İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için, operatörlerin sırası ve İşlenenlerin (operant) değerlendirmesine aşina olmamız

Detaylı

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Heap Sort Bahar 2017 Doç. Dr. Suat Özdemir 1 Heap Sort Heap Sort algoritması Merge Sort ve Insertion Sort algoritmalarının iyi özelliklerini bir arada toplar. Algoritma Insertion Sort gibi

Detaylı

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli Veri Modelleri Ağaç Veri Modeli Ağaç Veri Modeli Verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen bir veri modelidir. Ağaç veri modeli daha fazla bellek

Detaylı

BIL222 Veri Yapıları ve Algoritmalar

BIL222 Veri Yapıları ve Algoritmalar BIL222 Veri Yapıları ve Algoritmalar 1. ĠKĠLĠ AĞAÇLAR (BIARY TREES) Bütün düğümlerinin derecesi en fazla iki olan ağaca ikili ağaç denir. Yani bir düğüme en fazla iki tane düğüm bağlanabilir ( çocuk sayısı

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

Bölüm 9. Altprogramlar ISBN

Bölüm 9. Altprogramlar ISBN Bölüm 9 Altprogramlar ISBN 0-321-49362-1 Giriş Bu bölümde, programlarda sıkça kullanılan işlemlerin bir araya gruplanması ile oluşturulan altprogramlar incelenecektir. Altprogramlar sayesinde bir programda

Detaylı

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1 BMT 101 Algoritma ve Programlama I 3. Hafta Yük. Müh. Köksal GÜNDOĞDU 1 Akış Diyagramları ve Sözde Kodlar Yük. Müh. Köksal GÜNDOĞDU 2 Sözde Kodlar (pseudo-code) Yük. Müh. Köksal GÜNDOĞDU 3 Sözde Kod Sözde

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

BMT 101 Algoritma ve Programlama I Güz Dönemi. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I Güz Dönemi. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 2016 2017 Güz Dönemi Yük. Müh. Köksal Gündoğdu 1 Elektrik Elektronik ve Bilgisayar Yük. Müh. Köksal Gündoğdu koksalgundogdu@ekargemuhendislik.com Yük. Müh. Köksal Gündoğdu

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

Bölüm 4 C de Program Kontrolü

Bölüm 4 C de Program Kontrolü 1 Bölüm 4 C de Program Kontrolü Outline 4.1 Giriş 4.2 Döngülerin Temelleri 4.3 Sayıcı Kontrollü Döngüler 4.4 for Döngü Yapısı 4.5 for Döngü Yapısıyla İlgili Notlar ve Gözlemler 4.6 for Yapısıyla İlgili

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA 6. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu ALGORİTMA ÖRNEK1: İki sayının toplamı

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

Veritabanı Tasarımı. Düzenli İfadeler

Veritabanı Tasarımı. Düzenli İfadeler Veritabanı Tasarımı Düzenli İfadeler Konular Düzenli ifadeleri tanımlama SQL ifadelerinde düzenli ifadeleri arama, eşleme ve yer değiştirme katarlarında kullanma Düzenli ifadeleri ve kontrol kısıtlamalarını

Detaylı

Basamaklı Stil Şablonları (CSS) BIM206 Web Programlama

Basamaklı Stil Şablonları (CSS) BIM206 Web Programlama Basamaklı Stil Şablonları (CSS) BIM206 Web Programlama Basamaklı Stil Şablonları (CSS) CSS, bir HTML elemanının nasıl görüneceğini belirleyen kurallar tanımlamamızı sağlayar. Örneğin: Sayfanın arka planının

Detaylı

Chapter 8. Komut düzeyi kontrol yapıları ISBN

Chapter 8. Komut düzeyi kontrol yapıları ISBN Chapter 8 Komut düzeyi kontrol yapıları ISBN 0-321-49362-1 8. bölüm konuları Giriş Seçme komutları Tekrarlayan komutlar Şartsız dallanma Korumalı komutlar Sonuç Tercüme edip geliştiren: Doç. Dr. Zeki Bayram,

Detaylı

Genel Programlama I

Genel Programlama I Genel Programlama I 30.09.2010 1 Genel Programlama I Ders İçeriği Programlamaya giriş ve algoritma kavramları Basit ve karmaşık veri tipleri Program kontrol komutları (Döngü ve şart yapıları) Diziler ve

Detaylı

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) 1 BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) LECTURE 3: ASSIGNMENT OPERATOR Lecturer: Burcu Can BBS 514 - Yapısal Programlama (Structured Programming) 2 Lexical Elements (Sözcüksel Elemanlar)

Detaylı