Bölüm 3. Söz Dizilimi ve Anlamı Tanımlama ISBN
|
|
- Mehmet Akçatepe
- 5 yıl önce
- İzleme sayısı:
Transkript
1 Bölüm 3 Söz Dizilimi ve Anlamı Tanımlama ISBN
2 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 Anlamlarını Tanımlama: Dinamik Anlamlar
3 Giriş Bir programlama dilinin özlü ve anlaşılır bir tanımını yapma görevi zor ancak dilin başarısı için gereklidir ALGOL 60 ve ALGOL 68 kısa açıklamalar kullanılarak sunulan ilk dillerdir Bazı diller, biraz daha farklı lehçelere sahip olma sorunu yaşadı; bunun nedeni, basit fakat resmi olmayan ve kesin olmayan tanımın bir sonucudur Bir dili tanımlamadaki sorunlardan biri, açıklamayı anlaması gereken kişilerin çeşitliliğidir: ilk değerlendiriciler, uygulayıcılar ve kullanıcılar (son kullanıcılar) Çoğu yeni programlama dili, tasarımlarının tamamlanmasından önce, tasarımıcı kuruluştaki kullanıcılar tarafından incelenir. Bunlara ilk değerlendiriciler denir. Programlama dili uygulayıcılarının bir dildeki ifadelerin ve program birimlerinin nasıl oluşturulduğunu ve yürütülürken amaçlanan etkilerini belirleyebilmesi gerekir Dil kullanıcıları, bir dil referans el kitabına başvurarak yazılım çözümlerini nasıl kodlayacaklarını belirleyebilmelidir. Ders kitapları ve dersler bu sürece girer ancak dil el kitapları genellikle bir dil hakkında yalnızca basılı bilgi kaynağıdır Programlama dilleri için yapılan çalışmalar, doğal dil çalışmaları gibi, sözdizimi ve anlambilim alt başlıklarına ayrılabilir Bir programlama dili sözdizimi, ifadeler ve program birimleridir Dilin semantiği, bu ifadelerin ve program birimlerinin anlamıdır
4 Giriş Türkçe, İngilizce gibi doğal diller veya Java, C gibi yapay diller, alfabedeki karakter dizelerinin bir dizisidir Bir dildeki karakter dizelerine cümleler veya deyimler denir Dilin sözdizimi kuralları, dilin alfabesindeki hangi karakter dizelerinin sıralanacağını belirtir Örneğin, Türkçe de, cümlelerin sözdizimini belirten çok sayıda karmaşık kurallar vardır En büyük ve en yaygın kullanılan programlama dilleri bile doğal dillerle karşılaştırıldığında sözdizimsel olarak çok basittir Programlama dillerinin sözdiziminin biçimsel tanımlamaları çoğu zaman en düşük seviyedeki söz dizimi birimlerinin açıklamalarını içermez Bu küçük birimlere lexem (sözcük) adı verilir Sözcüklerin tanımı, genellikle sözdizimsel tanımdan ayrı olan bir yapı ile oluşturulur Bir programlama dili lexemlar, sayısal literaller, operatörler ve özel kelimeler içerir Programları, karakter dizelerinden çok lexem dizeleri olarak düşünebiliriz Lexemler çeşiti gruplara ayrılmıştır: Değişkenler Metotlar Sınıflar Dildeki özel kelimeler Her lexem grubu bir isim veya simge ile temsil edilir. Bu simgelere lexem ın kategorisi (token) denir.
5 Giriş Söz dizimi (syntax): ifadeler, anlatımlar ve program birimlerinin yapı ya da şekli Anlambilim (semantics): ifadelerin, anlatımların ve program birimlerinin anlamı Söz dizimi ve anlambilim bir dilin tanımını verir Bir dil tanımının kullanıcıları Diğer dil tasarımcıları Uygulayıcılar Programcılar(dilin kullanıcıları)
6 Söz Dizimi Tanımlama: Terminoloji Cümle alfabelerdeki karakterlerden oluşan dizi Dil cümleler kümesidir Sözcük (lexeme) dilin en alt seviye söz dizimsel birimi (örnek: *, sum, begin) Sembol (token) Sözcüklerin türü, kategorisidir (ör, belirleyici-identifier)
7 Dillerin Biçimsel Tanımı Bir dilin tanımı iki yolla yapılır: Tanıyıcılar (Recognizers) Bir tanıma aracı dilin girdi dizilerini okur ve girilen diziler o dile ait mi değil mi karar verir Örnek: bir derleyicinin sözdizimi analizi kısmı Üreticiler (Generators) Bir dilin cümlelerini üreten araç Bir kimse belli bir cümlenin söz diziliminin doğru olup olmadığına onu üreticinin yapısıyla karşılaştırarak karar verebilir
8 Söz Dizilimi Tanımlamanın Biçimsel Yöntemleri Backus-Naur Form(BNF) ve Bağlamdan Bağımsız Gramer (Context-Free Grammar) Programlama dilinin söz dizimini tanımlamada çok iyi bilinen yöntem 1950'lerin ortalarında, Noam Chomsky ve John Backus, aynı sözdizimi açıklama biçimini geliştirdiler; daha sonra sözdizimi açıklama biçimlemesi programlama dilinin en yaygın kullanılan yöntemi haline geldi. Genişletilmiş (Extended) BNF-EBNF BNF nin okunabilirlik ve yazılabilirliğinin geliştirilmiş şekli Gramerler ve Tanıyıcılar(Recognizers)
9 BNF ve Bağlamdan Bağımsız (Context-Free) Gramerler Bağlamdan Bağımsız Gramerler Noam Chomsky tarafından 1950 lerin ortalarında geliştirildi Dört dil sınıfını tanımlayan dört gramer sınıfı tanımladı Bağlam içermeyen ve düzenli olarak adlandırılan bu dilbilgisi sınıflarından ikisi, programlama dillerinin sözdizimini açıklamak için kullanışlı oldukları ortaya çıktı Küçük istisnalarla birlikte tüm programlama dillerinin sözdizimi bağlamsız dilbilgisi ile açıklanabilir Chomsky bir dilbilimci olduğu için, birincil ilgi doğal dillerin teorisi üzerine çalıştı, programlama dilleri ile ilgisi yoktu Dil üreticileri, doğal dillerin söz dizimini tanımlama için kullandılar
10 Backus-Naur Form (BNF) Backus-Naur Form(1959) John Backus tarafından Algol 58 i tanımlamak için icat edildi BNF bağlamdan bağımsız gramere denktir BNF diğer dilleri tanımlamada kullanılan bir metadildir. BNF de söz dizimsel yapıların sınıflarını göstermek için soyutlamalar kullanılır: Bunlar söz dizimsel değişkenler gibi davranırlar Bu yapıya nonterminal semboller denir
11 BNF Temelleri Non-terminaller: BNF soyutlamaları Terminaller: sözcükler ve jetonlar BNF, sözdizimsel yapılar için soyutlamalar kullanır. Örneğin, basit bir Java atama ifadesi, <assign> <var> = <expression> <assign> soyutlaması ile temsil edilebilir <> parantezler soyutlamaları Gramer: kurallar bütünü BNF kurallarının örnekleri: <ident_list> identifier identifier,<ident_list> <if_stmt> if <logic_expr> then <stmt>
12 BNF Kuralları Bir kuralın sol tarafı (LHS) ve sağ tarafı (RHS) vardır Kural, terminal ve nonterminal semboller içerir LHS, non-terminalden oluşur RHS, non-terminal veya terminal (tokenlar veya lexemlar) içerir Gramer, sonlu, boş olmayan kurallar kümesidir Bir soyutlama (ya da non-terminal sembol) birden fazla sağ tarafa sahip olabilir <stmt> <single_stmt> begin <stmt_list> end
13 BNF Kuralları Örnek olarak bir Java if yapısının kuralı şöyle <if_stmt> if ( <logic_expr> ) <stmt> Veya: <if_stmt> if ( <logic_expr> ) <stmt> else <stmt> <if_stmt> if ( <logic_expr> ) <stmt> if ( <logic_expr> ) <stmt> else <stmt>
14 Listeleri Tanımlama Söz dizimsel listeler özyineleme kullanılarak tanımlanırlar <ident_list> ident ident, <ident_list> Bir derivasyon, kuralların, başlama sembolünden başlayıp bir cümle ile biten tekrarlı uygulamasıdır
15 Gramer ve Derivasyon Gramer, dilleri tanımlamak için kullanılan bir araçtır Dilin cümleleri, başlangıç sembolü adı verilen gramerin non-terminallerinden başlayarak, kuralların bir dizi uygulaması yoluyla oluşturulur Bu kural uygulamalarına türetme (derivasyon) denir Bir programlama dili için bir gramer başlangıç simgesi komple bir programı temsil eder ve genellikle <program> gösterimiyle ifade edilir Bir derivasyon, kuralların, başlama sembolünden başlayıp bir cümle ile biten tekrarlı uygulamasıdır
16 Örnek Bir Gramer <program> <stmts> <stmts> <stmt> <stmt> ; <stmts> <stmt> <var> = <expr> <var> a b c d <expr> <term> + <term> <term> - <term> <term> <var> const Ok işaretine dikkat ediniz! Stmts: Komutlar, program içindeki komut satırları Stmt: Bir tek komut, bir tek komut satırı Var: Değişken Expr: İfade Term: Terim Const: Sabit (3 veya 17 gibi)
17 Örnek Bir Derivasyon <program> => <stmts> => <stmt> => <var> = <expr> => a =<expr> => a = <term> + <term> => a = <var> + <term> => a = b + <term> => a = b + const Ok işaretine dikkat ediniz!
18 Derivasyon Derivasyondaki sembollerin her dizisi cümleye ait bir formdur Bir cümle sadece terminal sembolleri, sabitleri veya değişken adlarını içeren cümlesel bir formdur Her cümlesel formdaki açıklanacak en sol non-terminalin olduğu derivasyon, en sol derivasyondur Cümleler en-sağ non-terminaller şeklinde de oluşturulabilir
19 Bir Başka Gramer Örneği Gramer 2: <program> begin <stmt_list> end <stmt_list> <stmt> <stmt> ; <stmt_list> <stmt> <var> = <expression> <var> A B C <expression> <var> + <var> <var> <var> <var>
20 Gramer 2 nin Derivasyon Örneği <program> => begin <stmt_list> end => begin <stmt>;<stmt_list>end => begin <var>=<expression>;<stmt_list>end => begin A = <expression> ; <stmt_list> end => begin A = <var> + <var> ; <stmt_list> end => begin A = B + <var> ; <stmt_list> end => begin A = B + C ; <stmt_list> end => begin A = B +C ;<stmt>end => begin A = B + C ; <var> = <expression> end => begin A = B +C ;B =<expression>end => begin A = B +C ;B =<var>end => begin A =B +C ;B = C end
21 Bir Başka Gramer Örneği Gramer 3: Basit atama ifadesinin grameri <assign> <id> = <expr> <id> A B C <expr> <id> + <expr> <id> * <expr> ( <expr> ) <id> SORU: A =B*(A+C) ifadesi bu gramere göre doğru mu? assign: Assisgnment, atama (sağ taraf işlemlerinin sol tarafa) id: identifier-tanımlayıcı, değişken adı, metot adı gibi
22 Gramer Ayrıştırma Ağacı Gramerlerin en önemli özelliklerinden biri, tanımladıkları dillerin cümlelerinin hiyerarşik sözdizimsel yapısını doğal olarak tanımlamalarıdır Bu hiyerarşik yapılara ayrıştırma ağaçları denir Ayrıştırma ağaçları düğümlerden, dallardan ve yapraklardan oluşur Ayrıştırma ağacının her düğümü bir non-terminal sembolle etiketlenir Her yaprak bir terminal simgesi ile etiketlenir Ayrıştırma ağacının her alt ağacı, cümledeki bir soyutlamanın bir örneğini açıklar
23 Gramer Ayrıştırma Ağacı <program> <stmts> <stmt> <var> = <expr> a <term> + <var> b <term> const
24 Gramer Ayrıştırma Ağacı
25 Gramerlerde Belirsizlik İki veya daha fazla ayrı ayrıştırma ağacına sahip bir cümlecik formu üreten bir gramer belirsizdir (ambigious) Belirsizlik bir ifadenin birden fazla anlama gelmesi durumunda söz konusu olur Gramerde belirsizliği tespit etmek için bir cümle iki ayrı ayrıştırma ağacı ile oluşturulmaya çalışılır. Eğer oluşturulabilirse gramer belirsizdir
26 Belirsiz İfadeli Bir Gramer <assign> <id> = <expr> <id> A B C <expr> <expr>+<expr> <expr>*<expr> ( <expr> ) <id> Bu gramer belirsizdir! Neden?
27 Kesin İfadeli Bir Gramer Eğer gramerde operatörlerin öncelik seviyesini değerlendirilmişse belirsizlik olmaz <assign> <id> = <expr> <id> A B C <expr> <expr> + <term> <term> <term> <term> * <factor> <factor> <factor> ( <expr> ) <id> Bu gramer belirli midir? Örnek bir cümle için değerlendiriniz! Örnek cümle de benden olsun: A = B + C * A
28 Operatörlerin Birlikteliği Operatörlerin birlikteliği gramerlerle de gösterilebilir Operatörlerin birlikteliği, aynı öncelik seviyesine sahip operatörlerin yan yana gelmesi durumunda oluşur Örnek: A/B/C
29 Genişletilmiş BNF BNF'de birkaç küçük eksiklikten dolayı, çeşitli şekillerde genişletilmiştir BNF nin üzerine özellik ilaveleri yapılmış versiyonuna Genişletilmiş BNF (Extended BNF) veya kısaca EBNF denir Genişletmeler BNF'nin gramer tanımlama gücünü arttırmaz; sadece BNF nin okunabilirliğini ve yazılabilirliğini kolaylaştırır EBNF'nin çeşitli sürümlerinde yaygın olarak üç genişletme bulunur
30 Genişletilmiş BNF Seçmeli kısımlar kare parantezler [] arasına yerleştirilir <proc_call> -> ident [(<expr_list>)] Sağ tarafların alternatif kısımları normal parantezler arasına dikey çizgi ile ayrılarak yerleştirilir <term> <term> (+ -) const Tekrarlar (0 veya daha fazla tekrar) kıvırcık parantez {} içine yerleştirilir <ident> letter {letter digit}
31 BNF ve EBNF BNF <expr> <expr>+<term> <expr>-<term> <term> <term> <term> * <factor> <term> / <factor> <factor> EBNF <expr> <term> {(+ -) <term>} <term> <factor> {(* /) <factor>
32 BNF ve EBNF BNF <expr> <expr> + <term> <expr> - <term> <term> <term> <term> * <factor> <term> / <factor> <factor> <factor> <exp> ** <factor> <exp> <exp> (<expr>) id EBNF <expr> <term> {(+ -) <term>} <term> <factor> {(* /) <factor>} <factor> <exp> { ** <exp>} <exp> (<expr>) id
33 Öznitelik (Attribute) Gramerleri Bağlamdan bağımsız gramerler (CFGs) programlama dillerinin tüm söz dizimini tanımlayamaz Öznitelik grameri, bir programlama dilinin yapısını daha fazla tanımlamak için kullanılan, bağlamdan bağımsız gramer ile tanımlanabilen bir aygıttır Öznitelik grameri, bağlamdan bağımsız gramerin bir uzantısıdır Bu sayede tür uyumluluğu gibi belirli dil kurallarının rahatça tanımlanması sağlanır Öznitelik gramerini tanımlayabilmek için statik anlambilim ve statik anlam kontrolü kavramlarının tanımına ihtiyaç vardır Ayrıştıma ağaçları boyunca bazı anlamsal bilgileri taşımak için CFG lere eklemeler yapılır
34 Statik Anlambilim BNF ile bir dilin tüm yapısını tanımlamak zordur belki de imkansızdır Örneğin, tür kontrolü konusunda; Java'da, bir floating-point değer bir tamsayı değişkene atanamaz, tersi doğru olmasına rağmen Bu kısıtlama BNF'de belirtilmesine rağmen, ek non-terminal semboller ve kurallar gerektirir Java'nın tüm yazım kuralları BNF'de belirtilmiş olsaydı, gramerin boyutu çok büyük olurdu BNF'de belirtilemeyen bir sözdizimi kuralı örneği: Değişkenlerin kullanılmadan önce bildirilmesinin zorunlu olduğu kuralı. Bu kuralın BNF de bildirilemediği kanıtlanmıştır BNF ile tanımlanamayan veya tanımlanması çok zor olan kurallar, statik semantik kuralları adı verilen dil kuralları kategorisindedir Bir dilin statik semantiği, yürütme sırasındaki programların anlamıyla doğrudan doğruya ilişkilidir
35 Statik Anlambilim Bir dildeki birçok statik anlamsal kural, tür kısıtlamalarını belirtir Bu kuralların analizi derleme zamanında yapıldığı için adına Statik semantik denmiştir BNF ile statik anlambilim tanımlayamama problemleri nedeniyle, bu görev için çeşitli daha güçlü mekanizmalar tasarlanmıştır. Böyle bir mekanizma olan öznitelik grameri, Knuth tarafından hem programların sözdizimini hem de statik semantiği tanımlamak üzere tasarlanmıştır Öznitelik grameri, bir programın statik semantik kurallarının doğruluğunu tanımlamak ve kontrol etmek için resmi bir yaklaşımdır Derleyici tasarımında her zaman resmi bir biçimde kullanılmasalar da, öznitelik gramerinin temel kavramları en azından her derleyicide gayri resmi olarak kullanılır Deyimlerin, ifadelerin ve program birimlerinin anlamı olan sematik türü dinamik semantiktir
36 Öznitelik Gramerleri Öznitelik grameri, niteliklere, hesaplama fonksiyonlarına ve doğrulama fonksiyonlarına eklenen bağlamdan bağımsız gramerlerdir Gramer simgeleriyle (terminal ve nonterminal simgeler) ilişkilendirilen özellikler, değişkenlere, kendilerine atanmış değerlere sahip olabilecekleri şekilde benzer niteliktedir Nitelik hesaplama fonksiyonları, bazen anlamsal işlevler olarak adlandırılır ve gramer kurallarıyla ilişkilendirilir Özellik değerlerinin nasıl hesaplandığını belirtmek için kullanılırlar. Dilin statik semantik kurallarını belirleyen doğrulama fonksiyonları grmaer kurallarıyla ilişkilendirilir
37 Öznitelik Gramerleri: Tanım Bir nitelik grameri aşağıdakilerle birlikte bağlamdan bağımsız bir gramerdir Her X gramer sembolü için nitelik değerlerinin bir A(X) kümesi vardır. A(X) kümesi iki ayrık küme olan S(X) ve I(X) den oluşur. S(X): Sentezlenmiş nitelik: Sentezlenen öznitelikler ayrıştırma ağacına yukarı yönde semantik bilgi aktarmak için kullanılır I(X): Kalıt alınmış nitelik: Miras alınan öznitelikler anlam bilgisi bilgilerini aşağı yönde bir ağaca aktarır Her bir kuralın kuraldaki non-terminallerin belli niteliklerini tanımlayan fonksiyonlar kümesi vardır Her kuralın, niteliklerin tutarlılıklarını kontrol etmek üzere belirteçler kümesi vardır
38 Öznitelik Gramerleri: Tanım Her gramer kuralı ile ilişkili olarak, gramer kuralındaki simgelerin nitelikleri üzerinde bir dizi semantik fonksiyon ve muhtemelen boş bir doğrulama fonksiyonu kümesi vardır Bir kural X0 S X1 c Xn için, X0 ın sentetik boyutlu öznitelikleri, S (X0) = f (A (X1), c, A (Xn)) biçimindeki semantik fonksiyonlarla hesaplanır Ayrıştırma ağacı düğümünde sentezlenen bir öznitelik değeri yalnızca o düğümün alt öğelerindeki öznitelik değerlerine bağlıdır. Xj, 1... j... n sembollerinin (yukarıdaki kuralda) devralınan nitelikleri, I(Xj) = f (A (X0), c, A (Xn)) formundaki semantik bir fonksiyon ile hesaplanır Ayrıştırma ağacı düğümünde kalıtsal bir öznitelik değeri, o düğümün kendine özgü düğümünün ve onun kardeş düğümlerinin özellik değerlerine bağlıdır. Döngüselliğin önüne geçmek için kalıtsal nitelikler genellikle I(Xj) = f (A (X0), c, A (X (j-1)) formundaki fonksiyonlarla sınırlandırılmıştır Bu form, miras alınmış bir özniteliğin kendisine veya ayrıştırma ağacındaki sağdaki niteliklere bağlı kalmasını önler
39 Öznitelik Gramerleri: Tanım Bir doğrulama fonksiyonu, {A (X0), c, A (Xn)} öznitelikleri birleşimi ve bir literal öznitelik değerleri kümesi üzerinde bir Boolean ifadesi biçimindedir. Bir öznitelik grameri ile izin verilen tek bir derivasyon (her nonterminal bir doğrulama fonksiyonu ile ilişkilidir) doğrudur (true). Sonucu yanlış (false) olan bir doğrulama fonksiyonu, sözdiziminin veya dilin statik anlam kuralının ihlal edildiğini gösterir. Öznitelik gramerinin bir ayrıştırma ağacı, muhtemelen boş olan her düğüme eklenen öznitelik değerleri kümesiyle birlikte, alttaki BNF dilbilgisine dayanan ayrıştırma ağacından oluşur Ayrıştırma ağacındaki tüm öznitelik değerleri hesaplandıysa, ağacın tamamen özelliklendirildiği söylenir Uygulamada her zaman bu şekilde yapılmamasına rağmen, öznitelik değerlerinin, özelliklendirilmemiş ayrıştırma ağacının derleyici tarafından oluşturulduktan sonra hesaplandığı düşünülür.
40 Yapısal Öznitelikler Yapısal öznitelikler (Intrinsic attributes), değerleri ayrıştırma ağacının dışında belirlenen yaprak düğümlerden sentezlenen öznitelikleridir Örneğin, bir programdaki değişken örneğinin türü, değişken adlarını ve türlerini depolamak için kullanılan sembol tablosundan gelebilir Sembol tablosunun içeriği, daha önceki deklarasyon ifadelerine dayanarak belirlenir. Başlangıçta, özelliklendirilmemiş ayrıştırma ağacının yapılandırıldığını ve öznitelik değerlerinin gerekli olduğunu varsayarak, değerleri olan tek öznitelik, yaprak düğümlerinin öz nitelikleridir Bir ayrıştırma ağacındaki yapısal öznitelik değerleri göz önüne alındığında, semantik fonksiyonlar kalan öznitelik değerlerini hesaplamak için kullanılabilir
41 Öznitelik Gramerleri: Tanım özeti X 0 X 1... X n bir kural olsun S(X 0 ) = f(a(x 1 ),..., A(X n )) şeklindeki fonksiyonlar sentezlenmiş nitelikleri tanımlar I(X j ) = f(a(x 0 ),..., A(X n )), 1<= j <= n şeklindeki fonksiyonlar miras kalan nitelikleri tanımlar İlk önce yapraklarda gerçek nitelikler vardır
42 Öznitelik Gramerleri: Bir Örnek Basit bir atama ifadesinin tür kurallarını denetlemek için bir öznitelik gramerinin nasıl kullanılacağını gösteriyor Bu atama ifadesinin sözdizimi ve statik semantiği şöyledir: Değişken adları A, B ve C'dir Atamaların sağ tarafı, bir değişken veya bir değişken eklenmiş bir ifade olabilir Değişkenler iki türde olabilir: int veya real Bir atamanın sağ tarafında iki değişken olduğunda, aynı tür olması gerekmez İşlenen türleri aynı olmadığında, ifade türü her zaman real olur Değişkenler aynı olduğunda ifade tipi, işlenenlerin türüdür Atamanın sol tarafının türü, sağ tarafın türüne uygun olmalıdır. Böylece sağ taraftaki işlenenlerin türleri karışık olabilir Ancak atama yalnızca hedef ve sağ tarafın değerlendirilmesinden elde edilen sonucun değeriyle aynı türde olması durumunda geçerlidir
43 Öznitelik Gramerleri: Örnek Söz dizimi <assign> -> <var> = <expr> <expr> -> <var> + <var> <var> <var> -> A B C Actual_type(gerçek_tür): <var> ve <expr> için sentezlenmiştir. Bunlar <var> veya <expr> de int ve real gerçek türlerini depolamak için kullanılır. Var içinde saklanırsa, gerçek tür yapısaldır. Expr içinde saklanırsa çocuk düğümlerin gerçek türlerinden belirlenir Expected_type(beklenen_tür): <expr> için mirastır. Atama ifadesinin sol tarafındaki var ın türü kullanılarak belirlenir
44 Öznitelik Gramerleri:Örnek (devam) Sözdizimi kuralı: <expr> <var>[1] + <var>[2] Anlam kuralı: <expr>.actual_type <var>[1].actual_type Belirteçler: <var>[1].actual_type == <var>[2].actual_type <expr>.expected_type == <expr>.actual_type Sözdizimi kuralı : <var> id Anlam kuralı : <var>.actual_type lookup (<var>.string)
45 Öznitelik Gramerleri:Örnek (devam) Niteliklerin değerleri nasıl hesaplanıyor? Eğer tüm nitelikler miras ise ağaç yukarıdan aşağıya doğru oluşturulabilir Eğer tüm nitelikler sentezlenmiş ise ağaç aşağıdan yukarıya doğru oluşturulabilir Pek çok durumda her iki nitelik çeşidi de kullanılır ve aşağıdan yukarıya ya da yukarıdan aşağıya bir kombinasyon kullanılmalıdır
46 Öznitelik Gramerleri:Örnek (devam) <expr>.expected_type ebeveynden miras <var>[1].actual_type lookup (A) <var>[2].actual_type lookup (B) <var>[1].actual_type =? <var>[2].actual_type <expr>.actual_type <var>[1].actual_type <expr>.actual_type =? <expr>.expected_type
47 Öznitelik Gramerleri:Örnek (devam) 1.Syntax kuralı: <assign> <var> = <expr> Semantik kuralı: <expr>.expected_type <var>.actual_type 2.Syntax kuralı: <expr> <var>[2] + <var>[3] Semantik kuralı: <expr>.actual_type if (<var>[2].actual_type = int) and (<var>[3].actual_type = int) then int else real end if Doğrulama: <expr>.actual_type == <expr>.expected_type 3.Syntax kuralı: <expr> <var> Semantik kuralı: <expr>.actual_type <var>.actual_type Predicate: Doğrulama: <expr>.actual_type == <expr>.expected_type 4. Syntax kuralı: <var> A B C Semantik kuralı: <var>.actual_type look-up(<var>.string) Look-up fonksiyonu verilen bir değişkenin sembol tablosundan değişken türünü bulur
48 Öznitelik Gramerleri:Örnek (devam) A=A+B için ayrıştırma ağacı
49 Öznitelik Gramerleri:Örnek (devam)
50 Anlambilim Anlamı tanımlamanın geniş ölçekte kabul edilen, tek bir notasyonu ya da biçimi yoktur Bir programlama dilinin anlam (semantic) kuralları, bir dilde sözdizimsel olarak geçerli olan herhangi bir programın anlamını belirler Anlamsal tanımlama için varolan yöntemler oldukça karmaşıktır ve hiçbir yöntem sözdizim tanımlamak için kullanılan BNF metadili gibi yaygın kullanıma ulaşmamıştır. İşlevsel Anlam Programın anlamını gerçek olarak ya da simülasyonla, ifadelerini makine üzerinde çalıştırarak tanımlar. Makinenin (hafıza, kayıtçılar, vs.) durumundaki değişim ifadenin anlamını tanımlar
51 İşlevsel Anlambilim Yüksek seviye bir dil için işlevsel anlambilimi kullanmak bir sanal makine gerektirir Donanımsal bir saf yorumlayıcı çok pahalı olurdu Yazılımsal bir saf yorumlayıcının da problemleri var Özel bir bilgisayarın detaylı karakteristiği eylemlerin anlaşılmasını güçleştirebilirdi Böyle bir anlambilim tanımlaması makine bağımlı olurdu
52 İşlevsel Anlambilim (devam) Daha iyi bir alternatif: bütün bir bilgisayar simülasyonu Süreç: Bir çevirici kur (kaynak kodunu ideal bir bilgisayarın makine koduna çeviren) İdeal bir bilgisayar için bir simülatör yap İşlevsel anlambilimin değerlendirmesi: Eğer gayri resmi kullanılıyorsa (dil kılavuzu, vs) iyi Eğer resmi olarak kullanılıyorsa (ör, VDL) oldukça karmaşık, o PL/I ın anlambilimini tanımlamada kullanılırdı
53 Aksiyomatik (Belitsel) Anlambilim Biçimsel mantık tabanlı (analize dayalı) Asıl amaç: biçimsel program doğrulaması Aksiyomlar ya da çıkarım kuralları dildeki her bir ifade türü için tanımlanmıştır(ifadelerin başka ifadelere dönüşümüne izin vermek için) İfadelere iddia denir
54 Aksiyomatik Anlambilim(devam) Bir ifadenin önündeki bir iddia(assertion) (bir önşart(precondition)), çalıştırıldığı zaman değişkenler arasında true olan ilişki ve kısıtları(constraints) belirtir Bir ifadenin arkasından gelen iddiaya sonşart(postcondition) denir En zayıf önşart(weakest precondition), sonşartı garanti eden asgari kısıtlayıcı önşarttır
55 Aksiyomatik Anlamın Biçimi Ön-son(Pre-post) biçimi : {P} ifade {Q} Bir örnek: a = b + 1 {a > 1} Mümkün bir önşart: {b > 10} En zayıf önşart: {b > 0}
56 Program İspat Süreci Tüm program için son şart istenen sonuçtur Program boyunca ilk ifadeye doğru tersten çalış. Eğer ilk ifadedeki ön şart programın tanımlamalarıyla aynı ise program doğrudur
57 Aksiyomatik Anlam: Aksiyomlar Bir atama ifadesi için aksiyom: (x = E): {Q x->e } x = E {Q} Sonucun kuralı: {P} S{Q}, P' Þ P, Q Þ Q' {P'}S{Q'}
58 Aksiyomatik Anlam: Aksiyomlar Diziler için bir çıkarım kuralı {P1} S1 {P2} {P2} S2 {P3} {P1} S1{P2}, {P2} S2{P3} {P1} S1; S2{P3}
59 Aksiyomatik Anlam: Aksiyomlar Mantıksal ön test döngüsü için bir çıkarım kuralı {P} while B do S end {Q} (I and B) S{I} {I}while B do S{I and (not B)} I: döngü sabiti (tümevarımsal hipotez)
60 Aksiyomatik Anlam: Aksiyomlar Döngü sabitinin(invariant) özellikleri I, aşağıdaki şartları sağlamalıdır: P => I (döngü değişkeni başlangıçta true olmalı) {I} B {I} (Boolean hesabı I nin doğruluğunu(geçerliliğini) değiştirmemelidir) {I and B} S {I} (Döngü gövdesinin çalıştırılmasıyla I değişmez) (I and (not B)) => Q (I true ise ve B false ise, Q bulunur(implied)) Döngü sonlanır (ispatlamak zor olabilir)
61 Döngü Sabiti Döngü sabiti I döngünün son şartının zayıflatılmış bir versiyonudur I döngünün başlangıcından önce karşılanmak/sağlanmak/tatmin edilmek için yeterince zayıf olmalı, ama döngünün bitiş koşuluyla bütünleştirildiğinde son şartın doğruluğunu güçlendirmek için yeterince güçlü olmalı
62 Aksiyomatik Anlamın Değerlendirmesi Bir dilde tüm ifadeler için aksiyomlar veya çıkarım kuralları geliştirmek zordur İspatların doğruluğu için iyi bir araç ve programlar hakkındaki muhakemeler için kusursuz bir taslaktır, fakat dilin kullanıcıları ve derleyici yazanlar için kullanışlı değildir Bir programlama dilinin anlamını tanımlamadaki kullanışlılığı dilin kullanıcıları ve derleyici yazanlarla sınırlıdır
63 Matematiksel Nesnelerle Anlambilim Özyinelemeli fonksiyon teorisi tabanlı En soyut anlam tanımlama yöntemi İlk kez Scott ve Strachey tarafından geliştirildi (1970)
64 Matematiksel Nesnelerle Anlambilim (devam) Bir dil için denotasyonel şartname hazırlama süreci. Dilin her birimi için matematiksel bir nesne tanımla Dil birimlerinin örneklerini ilgili matematiksel nesnelerin örnekleriyle eşleştiren bir fonksiyon tanımla Dil yapılarının anlamı sadece programın değişkenlerinin değerleriyle tanımlanır
65 Denotasyonel-İşlevsel İşlevsel anlambilimde durum değişimleri kodlanan algoritma tarafından tanımlanır Denotasyonel (matematiksel nesnelerle) anlambilimde durum değişimleri kesin matematiksel fonksiyonlarla tanımlanır
66 Döngünün Anlamı Döngünün anlamı, hata olmadığı varsayılarak, program değişkenlerinin döngüdeki ifadeler istenen sayıda çalıştıktan sonraki değeridir Esas itibariyle, döngü yinelemeden özyinelemeli kontrolün diğer özyinelemeli durum eşleştirme fonksiyonları tarafından matematiksel olarak tanımlandığı özyinelemeye dönüştürülür Özyineleme, yinelemeyle karşılaştırıldığında matematiksel kesinlikle tanımlaması daha Resul kolay Kara
67 Denotasyonel Anlamın Değerlendirmesi Programların doğruluğunun ispatında kullanılabilir Programlar hakkında düşünmek için kesin bir yol sağlar Dil tasarımına bir yardım olabilir Derleyici üretim sistemlerinde kullanılmıştır Karmaşıklığı sebebiyle dil kullanıcıları tarafından çok az kullanılmıştır
68 Özet BNF ve bağlamdan bağımsız gramerler meta dillere denk Programlama dillerinin sözdizimini tanımlamaya uygun Bir nitelik grameri dilin sözdizimi ve anlamını tanımlayan betimleyici bir biçimselliktir Anlambilimi tanımlamanın 3 temel yöntemi İşlem, aksiyomatik, denotasyonel
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ı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ı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ı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ı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ı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ı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ıHSancak Nesne Tabanlı Programlama I Ders Notları
DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar
Detaylı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ı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ı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 7. İfadeler ve atamalar ISBN
Bölüm 7 İfadeler ve atamalar ISBN 0-321-49362-1 7. Bölüm konuları Giriş Aritmetik ifadeler Çok anlamlı (overloaded) operatörler Tip dönüşümleri (conversions) İlişkisel ve Boolean İfadeler Kısa-devre hesaplama
DetaylıBİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS PROGRAMLAMA DİLLERİ BG-324 3/2 3+0+0 3+0 4 Dersin Dili : TÜRKÇE Dersin Seviyesi
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., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011
Detaylı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ıÇ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ıİÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA
İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA BÖLÜM-II ALGORİTMA I. GİRİŞ Bilgisayar dünyasında, insanın
DetaylıDeğişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while
Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne
DetaylıBilgisayarda Programlama. Temel Kavramlar
Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu
DetaylıBİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1 M-Dosya Yapısı Bir senaryo dosyası (script file) özel bir görevi yerine getirmek
Detaylı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ıTEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma
TEMEL BİLGİSAYAR BİLİMLERİ Programcılık, problem çözme ve algoritma oluşturma Programcılık, program çözme ve algoritma Program: Bilgisayara bir işlemi yaptırmak için yazılan komutlar dizisinin bütünü veya
DetaylıBölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e
Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler Fundamentals, Design, and Implementation, 9/e Üç Şema Modeli Üç şema modeli 1975 de ANSI/SPARC tarafından geliştirildi Veri modellemeninç ve rolünü
DetaylıDENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ
DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Programlama Dillerinin Prensipleri BİM-323 3/II 3+0+0 3 4 Dersin
Detaylı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ıBİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ Suna AKMELEZ
BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ 14011021 Suna AKMELEZ 14011050 Biçimsel Yöntemler Nedir? Nerede Kullanılır? Biçimsel Tasarım Biçimsel Yöntemlerin Yararları Biçimsel Yöntemlerin Zayıf Yönleri
Detaylı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ıHSancak Nesne Tabanlı Programlama I Ders Notları
SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama
DetaylıBİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü DERS NOTU 3 KONU: M-dosya yapısı ve Kontrol Yapıları M-Dosya Yapısı
Detaylı4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları
4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları Şart yapıları bir bilgisayar programının olmazsa olmazlarındandır. Şart yapıları günlük hayatımızda da çok fazla karşılaştığımız belirli
DetaylıMTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/
MTK467 Nesneye Yönelik Programlama Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ while döngüsü while(koşul){ } döngü ifadeleri Koşul boolean değerli olmalıdır. Koşulun değeri true
DetaylıMantıksal İşlemler. 7.1 true, false, nil
7 Mantıksal İşlemler 7.1 true, false, nil Doğru ya da Yanlış değer alan önermelere (ifadelere) mantıksal (logic) deyimler ya da boolean deyimler denilir ([5]). Bir çok dilde mantıksal işlemler true ve
DetaylıDekleratif Programlama. Örnek : Aile Ağacı. SWI-Prolog. Prolog Dekleratif programlama dili
Prolog Programlarının özellikleri: PROgrammig in LOGic Semboller üzerinde çalışma Problemlerin çözümünü tanımlama yerine çıkarım yapma Doğal ğ dille düşünülen ş şeylerin y kodlanması kolay Gerçekler ve
DetaylıBölüm 6. Veri Türleri ISBN
Bölüm 6 Veri Türleri ISBN 0-321-49362-1 Bölüm 6 Konular Giriş İlkel Veri Türleri Karakter Dizisi Türleri Kullanıcı Tanımlı Sıra Türleri Dizi Türleri İlişkili Diziler Giriş Bir veri türü veri nesnelerinin
DetaylıUygulamalı Yapay Zeka. Dr. Uğur YÜZGEÇ Ders 2: Prolog Giriş
Uygulamalı Yapay Zeka Dr. Uğur YÜZGEÇ Ders 2: Prolog Giriş Prolog Yazılımı Bedava Prolog yorumlayıcıları var Linux, Windows, Mac OS Çok fazla sayıda Prolog yazılımı indirmek mümkün Bunlardan birkaçı SWI
DetaylıÖrnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf
İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...
Detaylı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ıBİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2
PROGRAMLAMA Bir problemin çözümü için belirli kurallar ve adımlar çerçevesinde bilgisayar ortamında hazırlanan komutlar dizisine programlama denir. Programlama Dili: Bir programın yazılabilmesi için kendine
Detaylı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ı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ıBLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)
BLGM108 1. BÖLÜM Problem Çözme Kavramları (Algoritma ve Akış Şemaları) 1 Yazılım Geliştirme Adımları 1. Gereksinimlerin belirlenmesi Problemin ne olduğunu anlama: sorunu çözmek için ne gereklidir, çözüm
DetaylıAlgoritma ve Programlamaya Giriş
Algoritma ve Programlamaya Giriş Algoritma Bir sorunu çözebilmek için gerekli olan sıralı ve mantıksal adımların tümüne Algoritma denir. Doğal dil ile yazılabilir. Fazlaca formal değildir. Bir algoritmada
DetaylıBİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları
BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu
Detaylı1 PROGRAMLAMAYA GİRİŞ
İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)
Detaylı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ıPROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK Giriş-Tanımlamalar Program Nedir? Tanımlanmış bir problemi bilgisayar ortamında çözen ürüne program denir. Programlama Nedir? Tanımlanmış
Detaylı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ıManisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Soruları A KİTAPÇIĞI
Sayfa#1(A Kitapçığı) Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 3229- Biçimsel Diller ve Otomata Teorisi Final Sınavı Soruları A KİTAPÇIĞI Bahar 2017-2018 Süre: 45 Dakika Adı ve Soyadı
Detaylı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 Problemi Özyineleme Kökenli Ayrıştırma Aşağıdan Yukarıya Ayrıştırma Resul Kara 2 4.1 Giriş Derleyici
DetaylıVeri Yapıları ve Algoritmalar
1 Ders Not Sistemi Vize : % 40 Final : % 60 Kaynaklar Kitap : Veri Yapıları ve Algoritma Temelleri Yazar: Dr. Sefer KURNAZ Internet Konularla ilgili web siteleri 2 Algoritma : «Belirli bir problemin çözümünde
DetaylıYZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;
Detaylı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ıBilgisayar Programlama
Bilgisayar Programlama M Dosya Yapısı Kontrol Yapıları Doç. Dr. İrfan KAYMAZ Matlab Ders Notları M-dosyası Genel tanıtımı : Bir senaryo dosyası (script file) özel bir görevi yerine getirmek için gerekli
DetaylıBIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)
2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 3 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod) Yrd. Doç. Dr. İbrahim Küçükkoç Web: ikucukkoc.baun.edu.tr
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
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ı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ıBilgisayar Programlama MATLAB
What is a computer??? Bilgisayar Programlama MATLAB Prof. Dr. İrfan KAYMAZ What Konular is a computer??? MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi
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ı 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ıNesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin
DetaylıProgramın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:
Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler
Detaylı5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi
5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını
DetaylıC#(Sharp) Programlama Dili
Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin
DetaylıGÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ
GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ DERS 1 PROGRAM GELĐŞTĐRME PROGRAM GELĐŞTĐRME VERĐ ĐŞLEME(DATA
Detaylı2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21
İÇİNDEKİLER VII İÇİNDEKİLER 1 PYTHON 1 Neden Python? 2 Python Sürümleri 2 Python Kurulumu 3 Windows Üzerinde Python 3 Ubuntu Üzerinde Python 6 Komut Satırında Python Çalıştırma 6 Windows komut istemi üzerinde
DetaylıNesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya
DetaylıNesne Tabanlı Programlama
Nesne Tabanlı Programlama Ders Notu - 1 (Değerler, Değişkenler, İşleçler, Tip Dönüşümleri, Mantıksal Operatörler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,
Detaylı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ıMantıksal Operatörlerin Semantiği (Anlambilimi)
Mantıksal Operatörlerin Semantiği (Anlambilimi) Şimdi bu beş mantıksal operatörün nasıl yorumlanması gerektiğine (semantiğine) ilişkin kesin ve net kuralları belirleyeceğiz. Bir deyimin semantiği (anlambilimi),
Detaylı/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.
Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve
DetaylıC PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI
C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1 PROGRAM - ALGORİTMA AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Algoritma bir sorunun
Detaylı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ı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ıİ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ı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ıProgramlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları
Ders 3: Rastgele sayı üretimi ve uygulamaları Ders 3 Genel Bakış Giriş Rastgele Sayı Rastgele Sayı Üreteci rand Fonksiyonunun İşlevi srand Fonksiyonunun İşlevi Monte Carlo Yöntemi Uygulama 1: Yazı-Tura
DetaylıNESNEYE YÖNELİK PROGRAMLAMA
NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem
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 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ı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ıBilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN
Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince
DetaylıBBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu
BBS515 Nesneye Yönelik Programlama Ders 3 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bağıntısal Operatörler operatör tanımı < küçüktür > büyüktür = büyük eşittir eşittir!= eşit
DetaylıBMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1
BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı
DetaylıALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü
ALGORİTMA ANALİZİ Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü 2 Temel Kavramlar Algoritma: Bir problemin çözümünü belirli bir zamanda çözmek için sonlu sayıdaki adım-adım birbirini takip eden
DetaylıBMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler
BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin
Detaylı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ıELN1002 BİLGİSAYAR PROGRAMLAMA 2
ELN1002 BİLGİSAYAR PROGRAMLAMA 2 VERİ YAPILARI Sunu Planı Kendini-gösteren Yapılar Dinamik Bellek Tahsisi Bağlı Listeler Yığınlar Kuyruklar Ağaçlar 1 Veri Yapıları Şu ana kadar, diziler, matrisler ve yapılar
Detaylı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ıSunum İçeriği. Programlamaya Giriş 22.03.2011
Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon
Detaylı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ı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ıMetotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end
4 Metotlar Hemen her programlama dilinde var olan metot kavramı Ruby için de aynıdır. Bazı kaynaklarda metot terimi yerine fonksiyon terimi kullanılır. Bu kitapta iki terimi eşanlamlı kullanacağız. Ruby
DetaylıAlgoritmalar ve Programlama. Algoritma
Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri
Detaylı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ı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ıÖzyineleme (Recursion)
C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,
DetaylıDiziler İndisli Değişkenler
Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın
DetaylıYazılım Mühendisliği 1
Yazılım Mühendisliği 1 HEDEFLER Yazılım, program ve algoritma kavramları anlar. Yazılım ve donanım maliyetlerinin zamansal değişimlerini ve nedenleri hakkında yorum yapar. Yazılım mühendisliği ile Bilgisayar
DetaylıJAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ
JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra
DetaylıC Programlama Dilininin Basit Yapıları
Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade
Detaylı