Static typing
Bir programlama dilinde compile-time sırasında tip kontrolü yapılıyorsa ona statistically-typed language denir.
Java, c, c++ gibi diller statistically-typed dillerdir.
Type checking yani tip kontrolü, bir programın type-safe yani tipler açısından sorunsuz olup olmadığını kontrol etmek demektir.
Eğer bir programın bütün metodlarının argümanları doğru tipte ise type-safe demektir.
Java statistically-typed bir dil olduğundan, bir java programı compile edileceği zaman bütün metod parametreleri, değişkenler, return değerleri vb. de kullanılacak olan tip bilgileri bellidir.
Compiler bu hazır tip bilgilerinden yararlanarak strongly-typed bytecode'lar üretir.
Dynamic typing
Bir programlama dilinde tip kontrolü runtime sırasında yapılıyorsa ona dynamically-typed language denir.
Javascript, Ruby gibi diller dynamically-typed dillerdir.
Bu dillerde compiler kodu derleyeceği zaman elinde tip bilgisi mevcut değildir.
Kaynakı kodunda değişkenler,vb. tip bilgisi belirtilmeden yazılmıştır.
Nesnelerin tipleri sadece runtime sırasında belli olur.
Bu yüzden runtime sırasında tiplerin doğru olup olmadığının kontrolü yapılır.
Strong ve Weak typing
Bir programlama dilinde bir metoda yanlış tipte argümanlar verildiğinde hata alınıyorsa strongly-typed demektir. Java, Ruby strong typed dillerdir.
Aksi halde argümanların tipleri yanlış olduğunda otomatik olarak doğru tiplere çeviriliyorsa (type cast) weak typing uygulanıyor demektir.
Java SE7 ile gelen invokedynamic bytecode ile weak typing yaklaşımı kullanılabiliyor.
Etiketler
abstraction
Accord Framework
ajax
android
architecture
Array
assets
async task
AsyncTask
authorization
avd
billy joel
button
Classification
collections
component
concurrency
container
data science
database
Decision Tree
Decision Trees
dhcp
distributed
donma
emülatör
encapsulation
exception
express
Feature extraction
Feature Selection
garbage collection
glassfish
google
grafik
güvenlik
hadoop
http
IDE
inheritance
j2ee
jade
java
java.lang
JDBC
jls
JNDI
JSF
jsp
kitap
lib
link
Machine Learning
Marmara Üniversitesi
material design
maven
mongodb
multiple inheritance
nested class
netbeans
network
node.js
NoSQL
oop
Oracle
ORM
pass-by-value
pattern
permission
polymorphism
PrimeFaces
primitive
Project Euler
protocol
R
response
REST
RMI
root
Scala
servlet
Set
sözlük
spring
sqlite
tasarım desenleri
tcp/ip
template
test
thread
tier
toast
tomcat
türk telekom
twitter
UI thread
virtual device
web application
web design
web service
WEKA
wireshark
Hiç yorum yok:
Yorum Gönder