Bağlama ve Kapsam Kavramları

Slides:



Advertisements
Benzer bir sunumlar
Prof. Dr. Ahmet Arıkan Gazi Ü niversitesi Gazi Eğitim Fakültesi OFMAE Bölümü Matematik Eğitimi Anabilim Dalı.
Advertisements

Hafta 7: Öz Türleri ve Fonksiyonları BBY 306 Dizinleme ve Öz Hazırlama.
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.
Prof.Dr.Mehmet Tunç ÖZCAN
Dosya Yönetimi Dosya, Klasör ve Sürücüler HÜSEYİN ALİOSMANOĞLU.
T.C. ORDU VALİLİĞİ İlköğretim Müfettişleri Başkanlığı TAM ÖĞRENME MODELİ TAM ÖĞRENME MODELİ.
Bilimsel bilgi Diğer bilgi türlerinden farklı
Lojik Kapılar ve Lojik Devreler (Logic Gates And Logic Circuits)
BÖLÜM 4 PROGRAMLAMA DİLLERİ. PROGRAMLAMA DİLLERİNDE KULLANILAN VERİ TİPLERİ Bilgisayarda işlenen veriler iki türdür: Sayısal Alfasayısal.
HİPOTEZ TESTLERİNE GİRİŞ 1. Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Hopfield Ağı Ayrık zamanSürekli zaman Denge noktasının kararlılığı Lyapunov Anlamında kararlılık Lineer olmayan sistemin kararlılığı Tam Kararlılık Dinamik.
Zihinsel engellilerin sınıflandırılması
DONANIM VE YAZILIM.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
BULUŞ YOLUYLA ÖĞRETİM JEROME BRUNER.
Öğretim  Öğrenci gelişimini amaçlayan, öğrenmenin başlatılması, sürdürülmesi ve gerçekleştirilmesi için düzenlenen planlı etkinliklerden oluşan bir süreçtir.
Gereksinim Analizi ve Varlık Ba ğ ıntı Diyagramı Sibel SOMYÜREK.
BSE 207 Mantık Devreleri Sayı sistemleri Sakarya Üniversitesi.
İSTATİSTİK II BAĞIMSIZLIK TESTLERİ VE İYİ UYUM TESTLERİ “ c2 Kİ- KARE TESTLERİ “
HİPOTEZ TESTLERİNE GİRİŞ Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
BSM208 PROGRAMLAMA DİLLERİNİN PRENSİPLERİ
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
ÇOK BOYUTLU SİNYAL İŞLEME
BSM208 PROGRAMLAMA DİLLERİNİN PRENSİPLERİ Dil Çevrimi (Hafta4) 1.
Leyla İÇERLİ Araş. Gör. Dr. Aksaray Üniversitesi İİBF İşletme Bölümü.
Bölüm 2 C Dilinin Temelleri
Pazarlama İlkeleri.
BİLGİSAYAR PROGRAMLAMA DERSİ
KONULAR BÖLÜM: Kesirler, Ondalık Kesirler, Yüzde
VERİLERİN ANALİZİ Öğr. Gör. Funda Veren.
3. DEĞİŞKENLER Değişkenlerin kullanım ve tanımlanma şekli, o dilde program yapmayı ve programların anlaşılırlığını etkileyen önemli faktörlerden biridir.
İÇİNDEKİLER NEGATİF ÜS ÜSSÜ SAYILARIN ÖZELLİKLERİ
Ayrık Zaman Hopfield Ağı ile Çağrışımlı Bellek Tasarımı
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
Entegre Müfredat Modeli
Hasta Taşıma Aracı Kavramsal Tasarımı
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
BİLİŞİM SİSTEMLERİ GÜVENLİĞİ (2016)
Pascal’da Kullanılan Standart Prosedür ve Fonksiyonlardan Bazıları
Bilgisayar Mühendisliğine Giriş
3.hafta METODLAR.
Soyut veri tipleri ve kapsülleme kavramları
PARAMETRİK HİPOTEZ TESTLERİ
Bölüm 7 İfadeler ve atamalar.
DÜŞÜNME.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Test Puanlarının Yorumlanması: Standart Puanlar
Fortran Proglama Dili’nin Esasları
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Koşullu Durumlar.
BENZETIM 3. Ders Prof.Dr.Berna Dengiz Monte Carlo Benzetimi
NİŞANTAŞI ÜNİVERSİTESİ
Fonksiyonlar ve Alt Programlar
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Değerler ve Değişkenler
NİŞANTAŞI ÜNİVERSİTESİ
Evren-Örneklem, Örnekleme Yöntemleri 1
Pedagojİk Formasyon Sertifika programI ÖĞRETİM İLKE VE YÖNTEMLERİ Hafta V Prof.Dr.Bülent ÇAVAŞ.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
Pascal’da Kullanılan Standart Prosedür ve Fonksiyonlardan Bazıları
Veri ve Türleri Araştırma amacına uygun gözlenen ve kaydedilen değişken ya da değişkenlere veri denir. Olgusal Veriler Yargısal Veriler.
NİŞANTAŞI ÜNİVERSİTESİ
HUKUK BAŞLANGICI 4.
MTM216 GÖRSEL PROGRAMLAMA
Bilimsel Araştırma Yöntemleri
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Bağlama ve Kapsam Kavramları

İçerik Bağlama Kavramı İsim Kapsamları Bağlama zamanı, Tip bağlama, Bellek bağlama İsim Kapsamları Durağan Kapsam Bağlama Dinamik Kapsam Bağlama konuları

Bağlama(Binding) Bir özellikle bir program elemanı arasında ilişki kurulmasına bağlama (binding) denir.

Çeşitli programlama dilleri, özelliklerin program elemanlarına bağlanma zamanı ve bu özelliklerin durağan (static) veya dinamik (dynamic) olması açısından farklılıklar göstermektedir.

int hesap; … hesap=hesap+10; Bağlama Zamanı Bir programlama dilinde çeşitli bağlamalar farklı zamanlarda gerçekleşebilir. int hesap; … hesap=hesap+10; Hesap için olası tipler Dilin tasarım zamanında Hesap değişkeninin tipi Dilin derlenmesi zamanında Hesap değişkeninin olası değerleri Derleyici tasarım zamanı Hesabın değeri Bu deyimin yürütülmesi zamanında + işlemcisinin muhtemel anlamları Dilin tanımlanması zamanında + işlemcisinin bu deyimdeki anlamı Derlenme süreci 10 literalinin ara gösterimi Derleyici tasarımı zamanında Hesap değişkeninin alacağı son değer Çalışma zamanında

Tip Bağlama Bir tanımlayıcı (id) bir tip bilgisi, ilişkilendirilince o tiple bağlanmış olur. Bir programlama dilinde bir değişken kullanılmadan önce isimlendirilmeli, bir tip ile bağlanmalıdır. Böylece o değişkenin hangi değerleri alabileceği ve üzerinde hangi işlemlerin yapılabileceği belirlenmiş olur. Semantik anlam analizi için bu çok önemlidir.

Bağlama Zamanı Durağan Tip Bağlama Dinamik Tip Bağlama Derleme Zamanında bir değişkenin tipi çalışma zamanında, değişkenin bağlandığı değer ile belirleniyorsa bir değişken, integer tipi ile bağlanmışsa bir değişken, atama sembolünün sağ tarafında bulunan değerin, değişkenin veya ifadenin tipine bağlanır ve değişkenin tipi, çalışma zamanında değişkenin yeni değerler alması ile değiştirilir. A=1.5 A=14 Avantaj:Esneklik (örneğin sıralama ) FORTRAN, Pascal, C ve C++'da bir değişkenin tip bağlaması durağan olarak gerçekleşir ve çalışma süresince değiştirilemez. APL, LISP, SMALLTALK, SNOBOL4 derleyici, tip hatalarını, program çalıştırılmadan önce yakalar. Derleyicinin hata yakalama yeteneği zayıftır. Statik tip kontrolü yapılamaz Yorumlayıcı kullanırlar

Örtülü (implicit) ve Dışsal (explicit) Durağan Tip Bağlaması iki türlüdür Örtülü (implicit) ve Dışsal (explicit) Değişkene, programda yer alan bir tanımlama deyimi ile bir tip ile bağlanır. Tanımlama deyimleri kullanılmaz ve değişkenlerin tipleri, varsayılan (default) kurallar ile belirlenir procedure D; var n: char; begin n:= “D” ; W; end; { int t=a; a=b; b=t; } FORTRAN’da bir değişenin ismi I,J, K, L, M, N harflerinden biri ile başlıyorsa bu değişken örtülü olarak INTEGER tipi ile aksi hallerde REAL tipi ile bağlanır. BASIC:son karakteri $ ola değişkenler karakter tipi ile bağlanır. Yazım yanlışlığı hataların derleme sırasında yakalanması engellenebilir. Programlama dilinin güvenilirliğini azaltırlar. Örnek: PL/I, BASIC, PERL ve FORTRAN

Bellek Bağlama (allocation) (deallocation) lifetime etkinlik (activation) kaydı aynı bellek bölümünün yeniden kullanılabilmesi Pascal-dispose Java-otomatik C'deki malloc fonksiyonu C++ 'daki new işlemcisi Doğrudan adresleme Statik değişkenler, programın yürütülmesi başlamadan bellek hücrelerine bağlanırlar ve bellek hücreleri ile programın çalışması sonlanıncaya kadar bağlı kalırlar. FORTRAN I, II ve FORTRAN IV’de hepsi statik. C, C++ ve Java static anahtarını kullanır. ALGOL 60 ve bu çizgideki diller yığıt dinamik değişkenleri tanımlamaktadır. FORTRAN77 ve FORTRAN90 yerel olarak yığıt dinamik değişkenlere izin vermektedir. Pascal, C ve C++'da, lokal değişkenler, varsayılan olarak yığıt_dinamik değişkenlerdir. Dışsal yığın dinamik değişkenlerin bellek yeri bağlaması çalışma zamanında gerçekleşir. Ne kadar bellek gerektiği önceden bilinmez. Çalışma zamanında veriler oldukça belleğe atanır ve bellek yeri yığın bellekten alınır ve daha sonra yığın belleğe iade edilir. Bu verilere sadece işaretçi (pointer) değişkenler aracılığıyla ulaşılabilir. Bu değişkenlerin tip bağlaması derleme zamanında, bellek yeri bağlaması ise çalışma zamanında gerçekleşir.

Statik Stack Heap Ada Lokal değişkenler, altprogram parametreleri implicit: local değişkenler; explicit: new (garbage collection) C global değişkenler; statik local değişkenler explicit : malloc ve free C++ C ile aynı, static sınıf üyeleri C ile aynı Explicit: new ve delete Java Sadece ilkel tipli local değişkenler Implicit: her sınıf(garbage collection) Fortran7 7 global değişkenler(bloklar), lokal değişkenler ve altprogram parametreleri (implementation dependent); SAVE, static bellek atamasını düzenler Lokal değişkenler, altprogram parametreleri (implementation dependent) Pascal global değişkenler(compiler bağımlı) global değişkenler(compiler dependent), local değişkenler altprogram parametreleri Explicit: new ve dispose

İSİM KAPSAMLARI (Name Scope) Belirli isim tanımlarının etkin olduğu bir program alanına isim kapsamı denir.

Statik isim kapsam Dinamik Kapsam Değişkenlerin kapsamları, programın metinsel düzenine göre, fiziksel yakınlığa göre, belirlenir. Bir ismin kapsamının, altprogramların fiziksel yakınlıklarına göre değil, altprogramların çağrılma sırasına göre çalışma zamanında belirlenmesi dinamik kapsam bağlama olarak adlandırılır. ALGOL 60'ı izleyen çok sayıda dilde tanımlıdır. Altprogramlar iç içe yuvalanabilir. (C++ ve FORTRAN hariç) LISP, APL dillerinin ilk sürümleri Altprogramların yuvalanması sonucu gereğinden fazla genel değişken kullanımı olabilir. Bir programda genel olarak tanımlanan değişkenler tüm altprogramlara görünebilir olacakları için güvenilirlik azalmaktadır. Bir altprogramda bir değişkene yapılan başvuru, deyimin her çalışmasında farklı değişkenleri gösterebilir. Programların anlaşılabilirliğini azaltmaktadır

L L D ÖRNEK statik kapsam bağlama kuralına göre Dinamik kapsam bağlama kuralına göre L D

Özet Bu hafta Programlama elemanlarıyla çeşitli özelliklerinin ilişkilendirilmesini sağlayan bağlama konusu, durağan-dinamik tip, bellek ve isim kapsamı bağlama yönüyle incelenmiştir. İsim kapsamlarının durağan kapsam bağlama ve dinamik kapsam bağlama seçenekleri incelenmiş ve karşılaştırılmıştır.