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



Benzer belgeler
Bölüm 1. Ön Hazırlıklar ISBN

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

5. PROGRAMLA DİLLERİ. 5.1 Giriş

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

C# nedir,.net Framework nedir?

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

PROGRAMLAMA TEMELLERİ

Java Temel Özellikleri

Bölüm 2. Ana programlama dilerinin evrimi ISBN

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Bilgisayar Programlama Dilleri

Bilgisayarda Programlama. Temel Kavramlar

GÖRSEL PROGRAMLAMA - I

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

Konular. Hafta 1 BLG339 PROGRAMLAMA DİLİ KAVRAMLARI

Bölüm 7. İfadeler ve atamalar ISBN

Bahar. BM 211 Programlama Dilleri 3 1

Dr. Fatih AY Tel: fatihay@fatihay.net

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 Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1

Bölüm 5. İsimler, Bağlama, Tür Kontrolü ve Kapsam(Etki Alanı) ISBN

Qt Temelleri. Eren BAŞTÜRK.

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Bölüm 5. Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN

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

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

1 PROGRAMLAMAYA GİRİŞ

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0).

10.DERS Yazılım Gerçekleştirme

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

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

Windows Programlama Güz Dönemi

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

Öğr. Gör. Serkan AKSU 1

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Bölüm 9. Altprogramlar ISBN

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

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

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Bölüm 12. Nesne yönelimli programlama desteği

Program Nedir?(1) Programlamaya Giriş

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

Bölüm 5. İsimler, Bağlamalar, Tip Kontrolü, Etki Alanları ISBN

BİLGİSAYAR ORGANİZASYONU

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Ünite-3 Bilgisayar Yazılımı.

Yrd. Doç. Dr. Caner ÖZCAN

Bilgisayar Programlama. 1.Hafta

Yrd. Doç. Dr. Caner ÖZCAN

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

C #

Bölüm 9. Altprogramlar ISBN

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

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

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

ALGORİTMA VE PROGRAMLAMA I

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu

Hızlı Uygulama Geliştirme (SE 340) Ders Detayları

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

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

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

SPARC v8 İŞLEMCİ SİMÜLASYONU

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

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

C++ Dersi: Nesne Tabanlı Programlama

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Bölüm 6. Veri Tipleri ISBN

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

Bölüm 6. Veri Türleri ISBN

Programlama Dillerinde Kullanılan Veri Tipleri

İşletim Sistemleri (Operating Systems)

Algoritma ve Akış Diyagramları

BİT in Temel Bileşenleri (Yazılım-1)

Bilgisayar Mimarisi Nedir?

ELN1001 BİLGİSAYAR PROGRAMLAMA I

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Yazılım Mühendisliği Bölüm - 3 Planlama

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

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

Android e Giriş. Öğr.Gör. Utku SOBUTAY

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

C++ Dersi: Nesne Tabanlı Programlama

PROGRAMLAMA DERSİ 1. İNTERNET

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

BİL1001 Bilgisayar Bilimlerine Giriş 1

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

Transkript:

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 tasarım al-verleri Implementasyon yöntemleri Programlama ortamları

Niye Programlama Dilleri prensiplerini öğreniyoruz? Doğru dil seçimi yapmaya yönelik genel bilgi edinmek için Yeni dilleri daha kolay öürenmek için Dillerin implementasyonun önemini anlamak için Halihazırda bildiğimiz dilleri daha iyi kullanmak için.

Programlama Alanları Bilimsel uygulamalar Çok sayıda kayan nokta işlemi; dizi kullanımı Fortran İş uygulamaları Rapor üretimi, ondalık sayılar COBOL Yapay zeka Semboller; listeler LISP, Prolog Gömülü sistemler System programcılığı Gerçek zamanlı sistemler Web Yazılımları XHTML, PHP, Java

Dil değerlendirme kriterleri Okunabilirlik Yazılabilirlik Güvenirlik Maliyet

Değerlendirme Kriteri: Okunabilirlik Sadelik Az sayyıda özellik Bir operatörün birden çok amaç için kullanılmaması Az-Öz olma durumu Az sayıda basit operator Birbirleri ile uyumlu Kontrol yapıları (if-else, while vs.) yeterli olmalı Veri tipleri ve yapıları yeterli olmalı Sentaks: Kullanılan anahtar sözcükler anlamlı olmalı

Değerlendirme Kriteri : Yazılabilirlik Sadelik, az-öz durumu Az sayıda yapı, az sayıda basit operatör, az sayıda operatörleri birleştirme yöntemi Soyutlama desteği Gereksiz detayları saklama Güçlü İfade yeteneği İşlemleri sıkıntısız bir biçimde belirtebilme Önceden tanımlı operatörlerin ve fonksiyonların güçlü ve yeterli sayıda olması

Değerlendirme Kriteri : Güvenirlik Tip Kontrolü Tip hatalarını denetlemetesting for type errors İstisna mekanizması Program çalışırken meydana gelen hataları yakala ve gerekli düzenlemeleri yap Çok isimlilik Ayni hafıza lokasyonuna birden çok yöntemle erişebilme durumu Okunabilirlik ve yazılabilirlik

Değerlendirme Kriteri : Maliyet Programcı eğitimi maliyeti Program yazma maliyeti Program derleme maliyeti Program çalıştırma maliyeti Geliştirme ortamları: Ücretli/ücretsiz Güvenirlik durumu (kötü güvenirlik, çok maliyet) Program bakımı ve güncellemesi maliyeti

Diğer Değerlendirme Kriterleri Taşınabilirlik Bir ortamdan diğer ortama (örneğin işletim sistemi) kolayca aktarılabilir mi? Genel amaçlılık Birden çok sahada kullanılabilir mi? Tanımlı olma durumu Dil formel olarak tanımlandımı? Tanım eksiksizmidir? Yeterince detaylımıdır?

Dil tasarımı üzerine etkiler Bilgisayar Mimarisi Ör: Von Neuman Programlama metodolojileri Nesne yönelimli, fonksiyonel, mantık, kısıt, paralel

Bisgisayar Mimarisi Etkisi Bilinen mımari: Von Neumann Emir-komuta dilleri en yaygın çünkü bu mimariye en uyumlu Neumann computers Veri ve programlar hafızada saklanır Hafıza ve işlemci birbirinden ayrı İşlemler ve veri hafızadan işlemciye taşınır Emir-komuta dilleri için uygun yapı Değişken = hafıza hücresi Atama = Veri aktarılması Iterasyon kolay (jump)

von Neumann Mimarisi

von Neumann Mimarisi Getir-Çalıştır döngüsü Program sayacını ilkle Sonsuza kadar tekrar et sayacın gösterdiği komutu getir sayacı artır komutu anla komutu çalıştır Tekrar sonu

Programlama Metodolojıleri Etkileri 1950lar ve 1960ların ilk yılları: Basit uygulamalar, makinelerin verimli kullanılması ön planda 1960ların son yıllalı: İnsan kaynaklarının verimli kullanımı ön plana çıktı. yapısal programlama yukarıdan-aşağı tasarım, adım adım geliştirme 1970lerin son yılları: İşelm soyutlamadan veri soyutlamaya geçiş 1980lerin ortaları: Nesne yönelimli programlama Veri soyutlama + kalıtım + çok şekillilik (polymorphism)

Dil Kategorileri Emir-komuta Değişkenler, atama, iterasyon Kapsadıkları dil çeşitleri Nesne yönelimli scripting Görsel Örnekler: C, Java, Perl, JavaScript, Visual BASIC.NET, C++ Fonksiyonel Hesaplama yöntemiş fonksiyonları parametrelere uygulama Örnekler: LISP, Haskell Mantık Kural tabanlı Örnek: Prolog İşaretleme/programlama karışımı Programlama yapmaya müsait hale getirilen işaretleme dilleri Örnekler: JSTL, XSLT

Dil Tasarım Al-Verleri Güvenirlik - maliyet Örnek: Dizin endeksleri JAVA dilinde kontrol edilir, bu da zaman açısından maliyeti artırır. Okunabilirlik - yazılabilirlik - Örnek APL. Birçok operatör kullanarak az kod ile çok iş yapılabilir, ama yazılan kodun okunması güçtür. Yazılabilirlik - güvenirlik Örnek C++ işaretçileri.

Implementasyon Yöntemleri Derleme Programlar makine diline çevirilir Saf Tercüme Progamlar tercüman denilen başka bir program tarafından çalıştıtılır Karışık implementasyon sistemleri Derleyici ile tercüman arasında bir yerde.

Bilgisayarın Katmanlı Görüntüsü İşletim sistemi ve dil implementasyonu bilgisayarın makine arayüzü üzerine inşa edilmiştir.

Derleme Üst seviyeli kaynak kodu makine koduna çevirme Çevirme işlemi yavaş, kodun çalışması hızlı Derleme aşamaları: Sözcük analizi: kaynak koddaki karakterlerin sözcük birimlerine çevrilmesi Sentaks analizi: sözcük birimlerinden programın yapısını ortaya çıkaran çözümleme ağacı elde edilmesi. Anlam analizi: ara kod üretimi Kod üretimi: makine kodu üretimi

Derleme Süreci

Diğer Derleme Termınolojisi Yükleme modülü (çalıştırılabilen görüntü): kullanıcı ve sistem kodu birlikte Bağlama: sistem program ünitelerini kullanıcı programına bağlama ve bir yükleme modülü elde etme

Von Neumann Darboğazı Bilgisayarın islemcisi ile hafızası arasındaki bağlantının hızı bilgisayarın hızını belirler Program komutları hızlı, verinin taşınma hızı yavaş. Taşınma hızı bir darboğaz oluşturur. Bu olayın adı: von Neumann darboğazı. Bilgisayarların hızını etkileyen en önemli faktörlerden birisi.

SAF Tercume Çeviri yok Yazılımı kolay Yavaş çalışma (derlenmişe göre 100 defaya kadar daha yavaş) Daha çok hafıza ister Yüksek seviyeli diller için oldukça pek kullanılmıyor Bazı Web yazım dilleri ile önemi arttı (ör: JavaScript, PHP)

SAF Tercüme Süreci

Hibrid (karma) sistemler Derleyici tercüme edici arası Yüksek seviyeli dil ara dile çevrilir, ara dildeki kod tercüme edilir Saf tercümeden daha hızlı Örnekler Perl JAVA (Java Sanal Makinesi - Java Virtual Machine)

Hibrid İmplementasyonu Süreci

Tam-zamanında (TZ) implementasyon Sistemleri Önce programları bir ara dile çevir Ara dildeki alt programları (fonksiyon/prosedür) ilk kez çağrıldıklarında makine koduna çevir, makine kodunu çağır Daha sonraki çağırmalarda, tekrar çeviri yapma, daha önceki çeviriyi kullan JAVA ve.net dilleri için TZ kullanılır

Ön işlemciler Başka bir dosyadan dahil edilme komutları (makrolar) Ön işlemci program derleyiciye verilmeden devreye girer. Kendine ait komutları çalıştırır. Dosyayı komutların söylediği şekilde değiştirir. Örnek: C önişlemcisi #include, #define

Programlama Ortamları Yazılım geliştirmede kullalılan araçlar topluluğu UNIX Eski bir işletim sistemi ve araç topluluğu Şimdilerde UNIX üzerinde çalışan grafik arayüz ile kullanııyor (ör : CDE, KDE, or GNOME) Netbeans JAVA ve diğer diller için entegre geliştirme ortamı Microsoft Visual Studio.NET Büyük, karmaşık bir görsel geliştirme ortamı C#, Visual BASIC.NET, Jscript, J#, C++ dilleri için

Özet Programlama dilleri prensiplerini öğrenme sebepleri: Değişik yapıları kullanma yeteneğimizi artırmak için Kullanacağimiz dilleri daha bilinçli seçebilmek için Yeni dilleri daha kolay öğrenebilmek için Dil değerlendirme kriterleri: Okunabilirlik, yazılabilirlik, güvenirlik, maliyet Dil tasarımına etkiler: makine mimarisi ve yazılım geliştirme metodolojileri Ana implementasyon yöntemleri: derleme, saf tercüme, hibrid (karışım), Tam zamanında.