Yanlış yazmışım: scope değil, scoped demek istedim.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
June 03, 2013 Opcode'lu yorumlayıcıların etiket adresi gereksinimi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Yanlış yazmışım: scope değil, scoped demek istedim. Ali -- |
June 03, 2013 Opcode'lu yorumlayıcıların etiket adresi gereksinimi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Salih Dinçer | virtual, üst tür (veya arayüz) aynı olduğu halde alt türe uygun olarak davranan işlevdir. NYP'nin olmazsa olmaz olanaklarından birisidir.
Çıktısı: Daha önce konuştuğumuzu özetlersek: D'de 'final' olarak işaretlenmeyen sınıf üye işlevleri hep 'virtual'dır. C++ ve D bu konuda terstir.
Ali -- |
June 04, 2013 Opcode'lu yorumlayıcıların etiket adresi gereksinimi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Salih Dinçer | Alıntı (Salih Dinçer): >bir derleme zamanı olanağı gibi geldi bana...:) Tam tersine. Bütünüyle çalışma zamanı olanağıdır. Derleme zamanı olanağı olarak şablonlar ve işlev yükleme (overload) var. Bu ikisi de değil. Burada çağrı nesnenin vtbl göstergesi üzerinden bulunan işlev göstergesine yapılır. Alıntı: >Basit olmayan ve çalışma zamanında virtual'ın faydasını ve/veya yavaşlığını (adrese ulaşmak için 2 kere dallanma yapıldığını) gösteren bir örnek daha rica edebilir miyim? Aynı örneğin main'ini şöyle değiştirirsek Hayvan'ın derleme zamanında bilinmediğini görürüz:
(Oradaki cast'e gerek olmasına inanamıyorum. Bir derleyici hatası veya eksikliği olmalı. Üçlü işlecin dönüş ifadelerinin ikisinin ortak atası Hayvan olduğundan cast'e gerek olmadan derlenmesi gerekir.) Şuradaki Tren örneği de olabilir: http://ddili.org/ders/d/tureme.html Ali -- |
June 04, 2013 Opcode'lu yorumlayıcıların etiket adresi gereksinimi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı (acehreli): >Oradaki cast'e gerek olmasına inanamıyorum. Aynı soruyu bir yerden hatırlıyorum. Daha önce sormuşum bile: :) http://forum.dlang.org/thread/htf22g$2kvn$1@digitalmars.com Üçlü işleç sağ taraftaki iki ifadenin atasını buluyor ama bunu yaparken Object dalını tercih ediyor (Object, her sınıfın otomatik atası). Yani aslında elimizde aşağıdaki gibi bir türeme durumu var. Kedi ve Köpek hem Hayvan'dan türemiş durumdalar hem de Object'ten: -- |
June 04, 2013 Opcode'lu yorumlayıcıların etiket adresi gereksinimi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı (acehreli): >Alıntı (Salih Dinçer): >bir derleme zamanı olanağı gibi geldi bana...:) Tam tersine. Bütünüyle çalışma zamanı olanağıdır. Derleme zamanı olanağı olarak şablonlar ve işlev yükleme (overload) var. Bu ikisi de değil. Burada çağrı nesnenin vtbl göstergesi üzerinden bulunan işlev göstergesine yapılır. http://ddili.org/forum/thread/1179 -- |
June 04, 2013 Opcode'lu yorumlayıcıların etiket adresi gereksinimi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Alıntı (zekeriyadurmus): >Uzun zamandır bir şeyler okumuyorum beynim algıda daha da tembelleşmiş Hemen kendini suçlama. Okuduğun kitap yetersiz olmasın? ;) Lütfen anlaşılmayan bölümleri bana bildirin; basit bir cümle değişikliği bile bütün karışıklığı giderebilir. Alıntı: >sınıf yapılarının çalışma mantığını detaylıca anlatan bir kaynağınız var mı Aklımda yok ama vtbl, virtual function table, virtual function, vs. diye aratılabilir. Ali -- |
June 04, 2013 Opcode'lu yorumlayıcıların etiket adresi gereksinimi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı (acehreli): >Alıntı (Salih Dinçer): >Her şey derleme zamanında biliniyor. "Herşey" olamaz herhalde... :) Görüldüğü gibi, hangi hayvanın sesinin çıktığı programın parametreleri tarafından belirleniyor. Programın parametreleri derleme zamanında nasıl bilinsin? Ali Evet, inanmayacaksın ama her şey statik! Tamam, kabül... Test ve Jump komutları ile olasılıklar kümesi mevcut. Ama derleyici, bir sınıf için bellekten yeni bir adres talep etmek (_d_newclass) dışında dinamik bir kod üretmiyor. Biz foo() işlevine, 2 farklı sınıf göndersek de D programlama dilinin kurallarını ihlal etmediğimiz müddetçe EAX'a atılmış offset değeri nereyi işaret ediyorsa (aynı zamanda ESP'de şekillendiriliyor!) program oradan çalışmaya (statik verileri yüklemeye) devam ediyor.
L1A: xor EAX,EAX Özetle bu bir büyü. Biz bu büyünün kuralları içerisinde top koşturuyoruz. Aslında bu başlıkta tartışığımız örnek süslü bir şekilde ekrana 2 satır yazı yazmakta. Sadece gittiği yollar biraz dolambaçlı. Anlatabildim mi bilmiyorum ama bunlar sanal şeyler. Bunlar sadece dil olanakları, kuralları. Sevgiler, saygılar... -- |
June 04, 2013 Opcode'lu yorumlayıcıların etiket adresi gereksinimi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Salih Dinçer | Alıntı (Salih Dinçer): >Her şey derleme zamanında biliniyor. "Herşey" olamaz herhalde... :) Görüldüğü gibi, hangi hayvanın sesinin çıktığı programın parametreleri tarafından belirleniyor. Programın parametreleri derleme zamanında nasıl bilinsin? Ali -- |