C ++ İle Ne Nasıl Yapılıyor
-
iQsuz bunu yazdı
beyler benimde merak ettiğim bazı şeyler var ama nasıl ifade ediceğimi bilemiyorum.
şimdi ben herahangi bir dille program yazdım. bu program işlemci mimarisine göre derlendi ve bir hex kodu oluşturdu ve ben bunu run ettim.
e o zaman bütün diller sadece syntax'dan ibaret nedir bunları birbirinden ayıran yani compiler codu işlevsellendirebilecek şekilde yazılmışsa dilin kıvrak olmasına gerek yok ki tüm iş compiler'da bitiyo o zaman.
biri buna bi açıklama getirsin.
Zaten mesele senin bu aşamada çektiğin çile :)
Bi programlama dilinden önce, bi işin nasıl yapılacağını belirleyen paradigmalar vardır (prosedürel, nesne yönelimli, fonksiyonel vs.). Sen bu işi hangi paradigma ile yapıyosan onu destekleyen bir dil seçersin ya da bildiğin dilin destek verdiği yöntem ile işi gerçekleştirirsin (Yani ideal düzlemde böyle düşünülebilir) . Örneğin C, prosedürel bir programlama dili (ancak dili kanıttırarak nesne yönelimli bir tasarımda gerçekleştirebilirsin.) C++ ise birden fazla paradigmaya destek veren bir programlama dili (prosedürel, nesne yön. , generic vs.)
void func(integer a, int b);
Bir kaynak kodu düşün, şöyle fonksiyonlardan yüzlerce var. Aralarındaki tek bağlantı bulundukları kaynak dosyalar ve üstünde işlem yaptıkları nesne veya yapıların isimleri. Tasarımını bu işi yapan iş parçacıkları üzerinden düşünüyorsun ve yaptığın işlem prosedürel bir teknik oluyor. Dil sana ekstra bir imkan, destek sağlamıyor.
Sonra şöyle bir imkan var,
class TestClass { public: void func1(int a, int b); void func2(int a, int b); /** vs vs **/ private: /* vs vs */ };Bu yapıda ise, fonksiyonlar arasında mantıksal bir bağ var. Bakınca bu fonksiyonun TestClass isimli bir yapıya ait olduğunu biliyorsun. Senin işin, iş parçacıklarından değilde, nesneler arasındaki ilişkiden oluşuyor artık. Daha somut bir örnek;
BOOL AsansörüYukarıCıkart(int aktifkonum, int sonkonum); , sen asansörü değil, asansör nesnesi üzerine yapılacak işi düşünüyorsun ve bu iş her farklı marka asansör için farklı olabilir bu durumda xAsansörünüYukarı çıkart şeklinde farklı bir iş düşüneceksin. Ama bunu Nesne Yönelimli hale getirelim,
class Asansor {
int m_Konum;
int m_vsvs;
public:
bool AsansoruYukarıCıkart(int sonkonum);
};
Şimdi bu durumda bu Asansör nesnesini bir kavram olarak düşünürsen, bu durumda senin bütün asansörlerinin ortak bir arayüzü olacak ve her asansör için farklı bir yöntem olsa dahi nesne yönelimli programlamanın verdiği imkanlardan biri olan türetme mekanizması ile, her model asansörü bu yapıdan türetip kullanabileceksin.
Çok ama çok özet şekilde kullanılan tekniğin oluşturduğu fark böyle. Ayrıca dilin yüksek veya düşük seviyeli olması vs gibi DrKill'in de saydığı bir sürü etken var.
