Bölüm1 İlk Bilgiler.

Slides:



Advertisements
Benzer bir sunumlar
Sözcüksel Çözümleme/Analiz (Lexical Analysis)
Advertisements

Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Bilimsel bilgi Diğer bilgi türlerinden farklı
Bu yaklaşımda, kullanıcıların bilişsel ve fiziksel davranışları modellenmeye çalışılır. Ayrıca, kullanıcı davranışlarının bu modele uyup uymadığı ya da.
BÖLÜM 1 TEMEL KAVRAMLAR. BÖLÜM 1 TEMEL KAVRAMLAR.
SUNUCU İŞLETİM SİSTEMİ Öğr. Gör. Ümit ATİLA.  1980’li yıllardan günümüze geldikçe, bilgi toplumuna yönelişte teknolojik rota, telekomünikasyon ve iletişim.
Arş.Gör.İrfan DOĞAN.  Bugün otizm tedavisinde en önemli yaklaşım, özel eğitim ve davranış tedavileridir.  Tedavi planı kişiden kişiye değişmektedir,
Öğretim Teknolojileri ve Materyal Geliştirme
DONANIM VE YAZILIM.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
İNSAN BİLGİSAYAR ETKİLEŞİMİ: BİLİŞSEL BOYUT III. İBE alanında etkileşimi anlamaya çalışan uzmanlar, özellikle şema ve zihinsel modeller üzerinde yoğunlaşırlar.
Bağlama ve Kapsam Kavramları
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
Şahin GÖKÇEARSLAN. Yazılım Türleri Bilgisayar Yazılımları Yazılım türleri (İşletim sistemleri, paket programlar, programlama dilleri) Yazılım lisans türleri.
ÇOK BOYUTLU SİNYAL İŞLEME
BSM208 PROGRAMLAMA DİLLERİNİN PRENSİPLERİ Dil Çevrimi (Hafta4) 1.
Algoritma ve Programlamaya Giriş Ders 3. Örnekler GENEL TEKRAR.
BİLGİSAYAR PROGRAMLAMA DERSİ
PROJE TABANLI ÖĞRENME ATÖLYESİ
Fonksiyonel Programlama
C Programlama Dili Çağdaş Hakan Aladağ.
Algoritma ve Programlamaya Giriş
EETE233 Mikrodenetleyiciler ArduIno ile Programlama
YAZILIM İşletim Sistemleri Uygulama Programları Programlama Dilleri
BİLİMSEL ARAŞTIRMA TEKNİKLERİ
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
PROGRAMLAMA TEMELLERİ
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
HAZIRLAYAN SEDA KALKANDELEN
Teknolojİ ve tasarIm dersİ
STORAGE BÜŞRA KARADENİZ
ÖZELLİK FAKTÖR KURAMI.
İŞLETİM SİSTEMLERİ Bilişim Teknolojileri Araçlarında
Yrd.doç.Dr. H. Deniz GüllerOĞlu
Bilgisayarlara komut verme Remzi ÖZ
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Bilgisayar Mühendisliğine Giriş
Soyut veri tipleri ve kapsülleme kavramları
Bölüm 7 İfadeler ve atamalar.
Bilgisayar Yazılımları
Meriç ÇETİN Pamukkale Üniversitesi Bilgisayar Mühendisliği Bölümü
NİŞANTAŞI ÜNİVERSİTESİ
EĞİTİME GİRİŞ Mehmet Akif Ersoy Üniversitesi
Komut düzeyi kontrol yapıları
NİŞANTAŞI ÜNİVERSİTESİ
BÖLÜM 2 BİLİŞSEL GELİŞİM.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Koşullu Durumlar.
Tezin Olası Bölümleri.
NİŞANTAŞI ÜNİVERSİTESİ
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
Bilgi Teknolojileri Hafta 01
NİŞANTAŞI ÜNİVERSİTESİ
Değerler ve Değişkenler
İşlemciler.
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Programlama Yapısı.
Evren-Örneklem, Örnekleme Yöntemleri 1
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Bilgehan Arslan, Süreyya Gülnar
TÜRKÇE EĞİTİMİNİN ÖNEMİ
Sınıf Öğretmenlerinin Eğitsel Amaçlı İnternet Kullanım Öz Yeterlikleri
Bilimsel Araştırma Yöntemleri
NİŞANTAŞI ÜNİVERSİTESİ
Bilimsel araştırma türleri (Deneysel Desenler)
Örgüt Kuramı, Örgüt Tasarımı ve Örgütsel Değişim
Sunum transkripti:

Bölüm1 İlk Bilgiler

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ı Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

Programlama Alanları Bilimsel uygulamalar İş uygulamaları Yapay zeka Ç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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

Dil değerlendirme kriterleri Okunabilirlik Yazılabilirlik Güvenirlik Maliyet Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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ı Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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ı Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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? Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

Dil tasarımı üzerine etkiler Bilgisayar Mimarisi Ör: Von Neuman Programlama metodolojileri Nesne yönelimli, fonksiyonel, mantık, kısıt, paralel Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

von Neumann Mimarisi Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

Dil Kategorileri Emir-komuta Fonksiyonel Mantık 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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

Bilgisayarın Katmanlı Görüntüsü İşletim sistemi ve dil implementasyonu bilgisayarın makine arayüzü üzerine inşa edilmiştir. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

Derleme Süreci Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

SAF Tercüme Süreci Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

Hibrid İmplementasyonu Süreci Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

Ö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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

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 Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

Ö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. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ