Matruşka C. Katmanlı program dili sistemi

Kimyayı Mendeleev'in Periyodik Tablosu (1869) olmadan hayal etmeye çalışalım. Kaç unsurun belirli bir sıraya göre akılda tutulması gerekiyordu... (Sonra - 60.)

Bunu yapmak için bir veya daha fazla programlama dilini aynı anda düşünmeniz yeterli. Aynı duygular, aynı yaratıcı kaos.

Ve şimdi XNUMX. yüzyıl kimyagerlerinin tüm bilgilerinin ve biraz daha fazlasının tek bir Periyodik Tabloda sunulduğu zamanki duygularını yeniden yaşayabiliriz.

Matruşka C. Katmanlı program dili sistemi


“Matryoshka C. Katmanlı program dili sistemi", C dilinin tüm birimlerini bir bakışta sunar. Bu, onları düzenlemenize, güncel olmayan bilgileri düzeltmenize ve hatta programın konseptini netleştirmenize olanak tanır.

Bugün programlama bilgisinin sistemleştirilmesi, 150 yıl önce kimyasal elementlerin olduğundan daha fazla ihtiyaç duyuyor.

İlk gereklilik öğretmektir. Mendeleev ders vermeye hangi elementle başlayacağı sorusuyla karşılaştığında sistemini oluşturmaya başladı: O, H, N, He, Au... Aynı zamanda onun için daha kolaydı - kimyayı en iyi öğrencilere - öğrencilerine öğretti. St.Petersburg Üniversitesi. Programlama zaten okulda öğretiliyor ve yakında anaokulunda da başlayacak.

İkinci ihtiyaç ise bilimsel yaklaşımdır. Periyodik Tablonun yardımıyla yeni elementler keşfedildi ve eskilerle ilgili bilgiler düzeltildi. Atom modelinin yaratılmasına yardımcı oldu (1911). Ve benzeri.

Üçüncü ihtiyaç ise program kavramının açıklığa kavuşturulmasıdır.

Modern programlamanın bir ayağı 50. yüzyılın XNUMX'li yıllarına sıkışmış durumda. O zamanlar programlar basitti ancak makineler ve makine dilleri karmaşıktı, dolayısıyla her şey makineler ve diller etrafında dönüyordu.

Artık her şey tam tersi: programlar karmaşık ve birincil, diller basit ve ikincil. Buna herkesin aşina olduğu uygulamalı yaklaşım adı verilmektedir. Ancak öğrenciler ve geliştiriciler her şeyin aynı olduğuna ikna olmaya devam ediyor.

Bu da bizi Privatdozent Mendeleev'in ilk dersine geri getiriyor. Birinci sınıf öğrencilerine ne söylenir? Gerçek nerede? Soru budur.

“Matryoshka C” kitabı bu sorunun cevabını sunuyor. Program dilinin katmanlı sistemi". Üstelik sadece öğrencilere değil, aynı zamanda eğitimli programcılara da hitap ediyor, çünkü gerçeği aramamız ve dünya görüşünü değiştirmemiz gereken onlar, yani biziz.

Aşağıda kitabın özeti yer almaktadır.

1. Giriş

1969 yılında temel programlama dili haline gelen ve 50 yıl boyunca da öyle kalan C dili yaratıldı. Bu neden böyle? Her şeyden önce, çünkü C uygulamalı programı veren dil insancıl onun yerine görüntüle makine. Bu başarı, C ailesindeki dillerle güvence altına alınmıştır: C++, JavaScript, PHP, Java, C# ve diğerleri. İkincisi kısa ve güzel bir dildir.

Ancak C dilinin kendisi genellikle makine montajcısı ile karıştırılarak algısını karmaşıklaştırır ve çarpıtır. Diğer uç nokta ise dile belirli bir "felsefenin" dayatılmasıdır: prosedürel, nesnel, işlevsel, derlenmiş, yorumlanmış, daktilo edilmiş vb. Bu duygu katar ancak dili daha iyi tanımlamaya yardımcı olmaz.

Gerçek ortadadır ve C dili için felsefi algı ile makine algısı arasında kesinlikle ortadadır.

C dili bağımsız değildir, sıradan yazı diline uyar ve aynı zamanda montaj dilinin kendisini de kontrol eder. Bu pozisyon açıklanmaktadır Programın konuşma modeli, buna göre program üç alt türe ayrılmıştır: konuşma, kod, komut. C dili ikinci kod türünden sorumludur.

Dilin programdaki yerini belirledikten sonra onunla ilgili bilgileri düzenleyebilirsiniz; Katmanlı program dili sistemi, C dilini periyodik sistemin ruhuyla temsil eden - tek sayfada.

Sistem dikkate alınarak oluşturulmuştur. uygulamalı dil toplulukları, onların konuşma tabiiyetinden kaynaklanmaktadır. Bir Matryoshka C birimi seti, bir dizi Matryoshka oluşturarak farklı dilleri tanımlamanıza ve karşılaştırmanıza olanak tanır: C++, PHP, JavaScript, C#, MySQL, Python vb. Farklı dillerin temel dilin birimleri tarafından tanımlanması değerli ve doğrudur.

2. BÖLÜM 1. Programın konuşma modeli. C'yi temizle

İlk bölüm tanıtılıyor programın konuşma modeliuygulamalı bir yaklaşımı yansıtmaktadır. Ona göre programın üç belirgin ardışık türü vardır:

  1. konuşma - sorunu çözen programcının doğrudan konuşması,
  2. kodlanmış - bir çözümü C dilinde (veya başka herhangi bir dilde) matematiksel bir forma kodlamak
  3. ve komut - doğrudan makine komutları.

Konuşma modeli, C'nin neden basit ve anlaşılır bir dil olduğunu açıklar. Xi, bize tanıdık gelen insan konuşmasının imajı ve benzerliği üzerine inşa edilmiştir.

İlk program türü programcının doğrudan konuşmasıdır. Konuşma insan düşüncesine karşılık gelir. Yeni başlayan programcılar programları konuşmayı kullanarak yazarlar - önce Rusça, ardından eylemleri adım adım kod diline çevirerek. Ve C dili tam olarak bu modele göre yaratıldı.

Programcının konuşmayla ifade ettiği sonuçlar kodlanmış sayısal forma dönüştürülür. Bu dönüşümün adı verilmeli yansımaçünkü konuşma ve kod aynı doğaya sahiptir (yansıtma - doğum - cinsiyet). Programın konuşma (solda) ve kod (sağda) türlerini karşılaştırırsak bu oldukça açıktır.

Matruşka C. Katmanlı program dili sistemi

Düşünmenin çok basit bir şekilde, yalnızca iki tür ifadeyle gerçekleşmesi ilginçtir.

Bununla birlikte, C dilinin modern tanımı (1978'den itibaren), genel olarak dili tanımlamak veya özel olarak yansıtma görevi için yeterli bir isim listesi içermemektedir. Bu nedenle yaratıcı olmaya ve bu isimleri tanıtmaya zorlanıyoruz.

Kelime seçimi kesin ve net olmalıdır. Bu, kısaca şu şekilde ifade edilecek özel bir yaklaşımı gerektiriyordu: Ana dilin sıkı kullanımı. İngilizler için İngilizce olurdu ama biz İngiliz değiliz. Bu yüzden elimizde olanı kullanacağız ve Rusça konuşmaya çalışacağız.

Yansıma iki tür ifadeyle gerçekleştirilir:

  1. hesaplama (HF) - bir nesnenin özelliklerindeki değişikliği yansıtır. Bir nesnenin özelliği bir sayıyla ifade edilir, o zaman bir özellik üzerindeki eylem, bir sayı üzerindeki eylemdir - bir işlemdir.
  2. itaat (Pch) - eylemlerin sırasındaki bir değişikliği yansıtır. Pch'nin prototipi karmaşık bir konuşma cümlesidir, bu nedenle çoğu Pch türü "eğer", "aksi takdirde", "while", "for" ikincil bağlaçlarıyla başlar. Diğer bilgisayar türleri bunları tamamlar.

Bu arada, C açıklamasında hesaplama ifadeleri için bir ad bulunmadığına, bunlara yalnızca "ifadeler" denildiğine inanabiliyor musunuz? Bundan sonra, tabiiyet türüne ilişkin bir isim ve çağrışımın olmaması ve aslında genel olarak isimlerin, tanımların ve genellemelerin azlığı artık şaşırtıcı olmayacaktır. Bunun nedeni ünlü K/R'nin (“C Dili”, Kernighan/Ritchie, 1978) bir açıklama değil, dilin kullanımına yönelik bir rehber olmasıdır.

Ancak yine de dilin bir tanımını yapmak isterim. Bu nedenle ona teklif edilir Katmanlı program dili sistemi.

3. BÖLÜM 2. Katman sistemi. Kısa C

Herhangi bir açıklama doğru ve son derece kısa olmalıdır. Bir program dili söz konusu olduğunda ön açıklama zordur.

Burada bir programımız var. Modüllerden oluşur. Modüller alt programlardan ve koleksiyonlardan (yapı) oluşur. Alt programlar bireysel ifadelerden oluşur: bildirimler, hesaplamalar, sıralama. Ona kadar itaat türü vardır. Subordinasyon, alt seviyeleri ve alt rutinleri birbirine bağlar. Ayrıca çeşitli reklamlar da var. Ancak bildirimler yalnızca alt programlarda ve alt düzeylerde değil aynı zamanda modüllerde ve koleksiyonlarda da bulunur. İfadelerin çoğu, tanımlanması o kadar zor olan kelimelerden oluşur ki bunlar genellikle iki liste halinde verilir; orijinal ve türetilmiş kelimeler; dili öğrenirken ve kullanırken aşina olacaksınız. Buna noktalama işaretlerini ve bir takım ifadeleri ekleyelim.

Böyle bir sunumda kimin kimin üzerinde durduğunu anlamak kolay değil.

Bir dili tanımlamaya yönelik doğrudan hiyerarşik bir yaklaşım aşırı derecede karmaşık olacaktır. Dolambaçlı bir arama, konuşma doğasına ve komut yönüne dayalı olarak dilin bir tanımına yol açar. Böylece Mendeleev'in Periyodik Sistemi ile kısmen örtüşen Katman Sistemi doğdu. kat. Yayınlanmasından 42 yıl sonra (1869) ortaya çıktığı gibi, sistemin periyodikliği elektronikle ilişkilidir. katmanlar (1911, Bohr-Rutherford atom modeli). Ayrıca Katmanlı ve Periyodik sistemler, tüm birimlerin tek sayfada tablo halinde düzenlenmesi bakımından benzerdir.

Dil birimlerinin açıklaması kısadır - yalnızca 10 tür ifade ve 8 tür diğer birimin yanı sıra anlamlı ve görseldir. Her ne kadar ilk tanışma için alışılmadık olsa da.

Dil birimleri 6 seviyeye ayrılmıştır:

  1. birimler - tablo satırları
  2. bölümler - özel cins grupları (ilk satırın bölümleri)
  3. cins - hücreler (ana bölünme seviyesi)
  4. süper türler - tür ayırıcılar (nadir seviye)
  5. türler - hücrenin altındaki veya ayrı ayrı birim formülleri
  6. kalıplar - birimlerin kendileri (yalnızca kelimeler için)

Örnek kelimeler açıklıyor sözlük - aynı altı seviyeden oluşan ayrı bir alt sistem.

C dilinin konuşma bileşeni oldukça açıktır, ancak yine de açıklamayı hak etmektedir. Ancak dilin komut kısmı tam olarak üçüncü tür programın oluşturulduğu derleme kontrolüyle ilgilidir - komut. İşte C dilinin en heyecan verici yönüne geliyoruz: güzellik.

4. SONRAKİ BÖLÜMLER. Yakışıklı Si

C dili modern programlamanın temelidir. Neden? Birincisi, konuşmaya en büyük yazışma nedeniyle. İkincisi, makine numarası işlemenin sınırlamalarını güzel bir şekilde aştığı için.

Xi tam olarak ne önerdi? Görüntü ve katman.

"Görüntü" kelimesi, Yunanca "prototip" - "tip" kelimesinden gelen İngilizce "tip" kelimesinin bir çevirisidir. Rus dilinde “tip” kelimesi ifade edilen kavramın temel taşını taşımamakta, üstelik “tip” yardımcı anlamı ile karıştırılmaktadır.

Başlangıçta görüntü tamamen makine hesaplama problemini çözdü ve daha sonra nesne dillerinin doğuşu için bir pist haline geldi.

Katman, hem makine hem de uygulamadaki birçok sorunu hemen çözdü. Bu nedenle, değerlendirme tek görevli bir görüntüyle başlayacak ve çok görevli bir katmana geçecektir.

Tarihsel programlamanın hoş olmayan özelliklerinden biri, temel olanlar da dahil olmak üzere çoğu kavramın tanımsız verilmesidir. “Programlama dili (nehirlerin adı) tam sayı ve kayan sayı türlerine sahiptir…” ve daha da kazıdılar. Bir "tipin" (görüntünün) ne olduğunu tanımlamaya gerek yok, çünkü yazarların kendileri bunu tam olarak anlamıyor ve "açıklık adına" bunu gizleyecekler. Duvara çivilenirlerse belirsiz ve faydasız bir tanım vermiş olurlar. Yabancı kelimelerin arkasına saklanmak çok yardımcı olur: Rus yazarlar için - İngilizce'nin (tür) arkasında, İngilizler için - Fransızca'nın (altprogram), Yunanca'nın (polimorfizm), Latince'nin (kapsülleme) veya bunların kombinasyonlarının (geçici polimorfizm) arkasında.

Ama bu bizim kaderimiz değil. Bizim seçimimiz, saf Rusça olarak yükseltilmiş vizörlü tanımlardır.

görüntü

görüntü 1) miktarın içsel özelliklerini ve 2) miktara yönelik işlemlerin seçimini tanımlayan, bir miktarın önceden biçimlendirilmiş adıdır.

“Tür” (tip) kelimesi tanımın ilk kısmına karşılık gelir: “bir miktarın içsel özellikleri.” Ancak görüntünün asıl anlamı ikinci bölümdedir: “işlemlerin miktarlara göre seçimi.”

C'de bir görüntüyü tanıtmanın başlangıç ​​noktası, toplama işlemi gibi normal bir hesaplamadır.

Kağıt Matematik, ister elle yazılmış ister basılı olsun, sayı türleri arasında pek bir ayrım yapmaz, genellikle bunların gerçek olduğunu varsayar. Bu nedenle, işleme operasyonları açıktır.

makine Matematik, sayıları kesinlikle tam sayılara ve kesirlere ayırır. Farklı türdeki sayılar bellekte farklı şekilde depolanır ve farklı işlemci talimatları tarafından işlenir. Örneğin, tam sayıların ve kesirlerin eklenmesine ilişkin talimatlar, iki farklı işlemci düğümüne karşılık gelen iki farklı talimattır. Ancak tamsayı ve kesirli argümanları eklemeye yönelik bir komut yoktur.

Uygulamalı matematik, yani C dili, sayı türlerini ayırır ancak işlemleri birleştirir: tamsayılar ve/veya kesirler için toplama işlemi tek bir eylem işaretiyle yazılır.

Konsept imajının net bir tanımı, diğer iki kavramdan da kesinlikle bahsetmemize olanak sağlar: değer и операция.

Büyüklük ve operasyon

değer — işlenmekte olan numara.

Operasyon - son sayıyı (toplam) elde etmek için başlangıç ​​değerlerinin (argümanlar) değerlerinin işlenmesi.

Büyüklük ve operasyon birbiriyle ilişkilidir. Her işlem bir niceliktir çünkü sayısal bir sonucu vardır. Ve her değer, işlemci yazmacına/kayıttan bir değer aktarımının, yani işlemin sonucudur. Bu ilişkiye rağmen, MA3'te olduğu gibi, sözlüğün farklı bölümlerinde bir kelimenin tekrarlanmasıyla da olsa asıl önemli olan, bunların ayrı açıklamalarının olasılığıdır.

Makine yaklaşımı programcının kullandığı tüm sayıları komutlar и veri. Eskiden ikisi de sayıydı, örneğin komutlar sayısal kodlarla yazılıyordu. Ancak uygulamalı dillerde komutlar sayı olmaktan çıkıp kelimede и eylem işaretleri. Sayı olarak sadece “veri” kalıyor ama onları bu şekilde adlandırmaya devam etmek saçma çünkü makineden matematiksel bakış açısına geçişte sayılar orijinaline bölünen niceliklerdir (veri) ve son (gerekli). "Bilinmeyen veri" kulağa aptalca gelecektir.

Ekipler ayrıca iki tür eyleme ayrıldı: matematiksel ve hizmet. Matematiksel eylemler - işlemler. Resmi konulara daha sonra geçeceğiz.

C dillerinde, alışılagelmiş kağıt ve makinedeki kesin veya tek matematiksel işlemler neredeyse evrensel olarak çoklu hale gelir.

Çoklu işlemler, farklı türde argümanlara ve farklı, anlam bakımından benzer eylemlere sahip, aynı adı taşıyan birkaç işlemdir.

Tamsayı argümanları bir işlemin tamamına, kesirli argümanlar ise kesirli bir işleme karşılık gelir. Bu fark, özellikle 1/2 ifadesinin 0 değil toplam 0,5 değerini verdiği bölme işlemi sırasında açıkça görülür. Böyle bir gösterim kağıt matematiğinin kurallarına uymuyor, ancak C dili bunlara uymaya çalışmıyor (Fortran'ın aksine) - kendi başına oynuyor uygulamalı kurallar.

Tam sayıların ve kesirlerin karıştırılması durumunda, tek doğru olan dahil edilir argüman değerlerinin dökümü — bir değerin bir görüntüden diğerine seçici dönüşümü. Aslında bir tamsayı ve kesirli bir sayı toplandığında sonuç kesirli olur, dolayısıyla işlemin görüntüsü alır bir tam sayı argümanını kesirli bir değere dönüştürme işlemi.

Bir dizi operasyon kaldı çoğulVe bekar. Bu tür işlemler yalnızca bir tür bağımsız değişken için tanımlanır: bölme kalanı - tam sayı bağımsız değişkenleri, istifleme (bit düzeyinde işlemler) - doğal tam sayılar. Ma3, işlemin tanımlandığı görüntüleri gösteren işaretlerle (#^) işlem çokluğunu belirtir. Bu, her operasyonun önemli fakat daha önce gözden kaçan bir özelliğidir.

Tüm işlevler isteğe bağlı birim işlemlerdir. Bunun istisnası operatörlerdir - parantez dışı işlevler, dilin içine yerleştirilmiş (orijinal işlemler).

tanıtım

tanıtım - operasyona eşlik eden eylem.

Operasyonu ana eylem olarak düşünürsek, operasyonu sağlayan ve ondan farklı olan iki eşlikçiyi ayırt edebiliriz. Bunlar 1) değişken kontrol ve 2) tabiiyettir. Bu eyleme denir yardım.

Burada programlama ders kitaplarının Rusça çevirileri hakkında ayrı ayrı konuşmamız ve söylememiz gerekiyor. Eylemleri kaydetmek için K/R metnine yeni bir kelime eklendi ifade (ifade), bir makine komutunun kavramlarını farklı eylemlere bölmeye çalışan: 1) işlem, 2) bildirim ve 3) tabiiyet ("kontrol yapıları" olarak adlandırılır). Bu girişim Rus çevirmenler tarafından "ifade" yerine "operatör" kelimesi getirilerek gömüldü:

  1. makine kelimesi “komut” ile eşanlamlı hale geldi,
  2. “eylem işareti” ifadesiyle eşanlamlı olduğu ortaya çıktı,
  3. ve ayrıca sınırsız sayıda ek değer aldı. Yani İngilizce “uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh” makalesine benzer bir şeye dönüştü.

Eşlik eden eylemleri göz önünde bulundurun veya yardım.

Değişken kontrol

Değişken kontrol (UP) - değişken hücrelerin oluşturulması/silinmesi.
UE, başka bir nedenden dolayı zaten yazılmış olan bir değişkeni, değerin görüntüsünü belirtmek için bildirirken örtülü olarak gerçekleşir. Yalnızca bir görünüm açıkça yönetilir ek değişkenler malloc() ve free() işlevlerini kullanarak.

Örtülü eylemlerin hiçbir şey yazmayı gerektirmedikleri için yazmak için daha uygun olduğu, ancak anlaşılması daha zor olduğu - dikkate alınması ve yorumlanması daha zor olduğu unutulmamalıdır.

boyun eğme

boyun eğme — katman bölümlerini bağlayın/devre dışı bırakın.

C dili, montajcı - itaatten farklı olarak eylemlerin sırasını kontrol etmek için uygulamalı bir yöntem sundu. Ana bölüme (bağım tümcesi) ve alt bölüme (alt düzey/alt program bölümleri) net bir şekilde bölünerek karmaşık bir konuşma cümlesini yansıtır ve geliştirir.

Hem beyan hem de sunum tamamen konsept üzerine inşa edilmiştir. слой.

tabaka

tabaka sınırlı, tek düzeyli seçici bir ifadeler kümesidir.

Katman açıkça ve örtülü olarak aynı anda birkaç görevi üstlendi:

  1. programın düzenlenmesi
  2. adların görünürlüğünün sınırlandırılması (örtük olarak),
  3. değişkenlerin yönetimi (bellek hücreleri) (örtük),
  4. tabiiyet için yan cümleciklerin tanımı,
  5. fonksiyonların, seçimlerin ve diğerlerinin tanımları.

Makine dillerinde katman kavramı yoktu, dolayısıyla K/R'de yer almıyordu ve eğer orada bir şey yoksa onu sonraki kitaplara dahil etmek sapkınlık ve özgür düşünce olurdu. Bu nedenle, son derece yararlı ve oldukça açık olmasına rağmen katman kavramı hiç ortaya çıkmadı.

Katman olmadan programın birçok eylemini ve kuralını kısaca ve net bir şekilde açıklamak imkansızdır. Örneğin, neden üç kopek kadar basit olana gitmek kötü, zor olan süre ise iyi. Dijkstra'nın yaptığı gibi ancak çaresizce küfredebilirsiniz ("Programcıların becerisi, programlarında goto ifadelerinin görülme sıklığına ters orantılı olan bir işlevdir." Kısacası, yalnızca keçiler goto'yu kullanır. Gerekçe düzeyi Tanrı'dır.) Doğru, eğer kitaplarınız hiçbir şeyi açıklamak zorunda değilsek bu o kadar da korkutucu değil, ancak daha önce de söylediğimiz gibi bu bizim kaderimiz değil.

Bu arada, Dan Ritchie'nin goto'yu tam da isimsiz bir kavramı aramak için bir anahtar olarak bıraktığı varsayılabilir, çünkü goto ifadesinde ne bir ihtiyaç ne de bir güzellik vardı. Ancak Richie'nin kendisinin vermek istemediği ve tam olarak kavram temeline dayanan yeni dil ilkelerinin basit ve anlaşılır bir açıklamasına ihtiyaç vardı. слой.

sapma

sapma — yeni ismin olağan özelliklerinin değiştirilmesi.

En önemli sapma tam olarak programın katman özellikleriyle ilgilidir ve her katman türünde farklı bir anlam taşıyan tek bir kelime olan “statik” ile tanımlanır.

5. SON BÖLÜM. Uygulamalı dillerin ortaklığı

Uygulanan diller mecazi diller (bir resme sahip, “yazılı”). Görüntünün açık veya örtülü kullanımına dayanırlar. Üstelik burada yine bir çelişki ortaya çıkıyor: Açık bir görüntü daha anlaşılır, ancak daha az kullanışlıdır ve bunun tersi de geçerlidir.

Matruşka C. Katmanlı program dili sistemi

(Tablo düzeni henüz teslim edilmediğinden tablo resimli olarak gösterilmektedir.)

C'den sonra uygulamalı dillerin gelişimi mecaziliklerini arttırma yoluna gitti. Yüksek görüntüleri anlamak için en önemlisi, C++ dili olan C'nin doğrudan soyundan gelen dildir. Miktarlar için keyfi bir işlem seçimi fikrini geliştirir ve bunu yeni bir isim - nesne alan sentetik ifade seçimi temelinde somutlaştırır. Ancak, yeni koleksiyon türlerinin ve bunlarla ilişkili kuralların aşırı yüklenmesi nedeniyle C++, C kadar özlü ve anlamlı değildir. Bu arada “aşırı yükleme”den de bahsedelim.

Aşırı yükleme ve polimorfizm

"Aşırı yükleme" kelimesi, makine öğreniminde kullanılan eski bir terimdir. çoklu işlemler.

Makine (sistem) programcıları çoğulluk işlemler can sıkıcı olabilir: “Bu işaret (+) ne anlama geliyor: tam sayıların eklenmesi, kesirlerin eklenmesi ve hatta kaydırma?! Bizim zamanımızda böyle yazmazlardı!” Bu nedenle seçilen kelimenin olumsuz çağrışımı (“aşırı”, “yorgun”). Bir uygulama programcısı için çoklu işlemler C dilinin temel taşı, ana başarısı ve mirasıdır; o kadar doğaldır ki çoğu zaman fark edilmezler.

C++ dilinde çoğulluk yalnızca orijinal işlemlere değil, aynı zamanda hem bireysel hem de sınıflar halinde birleştirilmiş işlevlere yönelik yöntemlere de genişletildi. Birden fazla yöntemle birlikte, belirsiz bir şekilde "polimorfizm" olarak adlandırılan genişletilmiş sınıflarda bunları geçersiz kılma yeteneği geldi. Polimorfizm ve aşırı yüklemenin birleşimi, iki polimorfizme ayrılan patlayıcı bir karışım üretti: "doğru" ve "geçici". Bunu ancak verilen isimlere rağmen anlamak mümkündür. Reklama giden yol yabancı isimlerle döşenmiştir.

“Aşırı yük” formunun beyanı şu kelimeyle daha iyi ifade edilir: ek duyuru — farklı bir görüntünün argümanlarıyla aynı isimdeki bir fonksiyonun bildirimini eklemek.

"Polimorfizm" biçimindeki bir bildirime daha iyi bir ad verilir yeniden duyuru — aynı adı taşıyan bir fonksiyonun yeni bir uzantı katmanında aynı görüntünün argümanlarıyla örtüşen bir bildirim.

O zaman farklı görüntülerin (argümanların) aynı yöntemlerinin olduğunu anlamak kolay olacaktır - ayrıca duyurulduve bir resim - yeniden duyuruldu.

Rusça kelimeler karar verir.

Koşu yolu

Oldukça mecazi dillerdeki kavramların dikkate alınması, temel kavramların açık bir tanımının önemini doğrulamaktadır. C'nin doğru tanımlanmasıyla yüksek mecazi dilleri öğrenmek kolay ve keyifli olacaktır.

Bu özellikle aşağıdakiler için önemlidir: üstü kapalı yüksek derecede mecazi diller (PHP, JavaScript). Onlar için nesnelerin (bileşik görüntüler) önemi C++'dakinden bile daha yüksek hale gelir, ancak görüntü kavramının kendisi örtülü ve anlaşılması zor hale gelir. Kolaylık açısından daha basit hale geldiler, ancak anlama açısından daha zor hale geldiler.

Bu nedenle programlama dillerini öğrenmeye C dili ile başlamalı ve C ailesi dillerinin göründüğü sıraya göre ilerlemelisiniz.

Aynı şey dilleri tanımlamak için de geçerlidir. Farklı diller, C dilindekiyle aynı veya daha küçük birim cinsiyet kümesine sahiptir. Türlerin ve örneklerin sayısı her iki yönde de farklılık gösterebilir: C++'da C'den daha fazla tür bulunurken, JavaScript'te daha az tür bulunur.

MySQL dili özel olarak anılmayı hak ediyor. Görünüşe göre ortak hiçbir şey yok, ama Matryoshka onu mükemmel bir şekilde tanımlıyor ve onu tanımak daha hızlı ve daha kolay hale geliyor. Modern programlamanın yemek yolu olan web açısından önemi göz önüne alındığında bu önemlidir. MySQL'in olduğu yerde başka SQL'ler de vardır. Eh, her türden Fortran-Pascal-Python da Matryoshka tarafından ellerine geçer geçmez anlatılıyor.

Yani bizi harika şeyler bekliyor: C dilinin uygulamalı bir açıklaması ve onu takip eden dillerin birleşik bir açıklaması. “Hedeflerimiz belli, görevlerimiz belli. İşe koyulun yoldaşlar! (Fırtınalı, uzun süreli alkışlar, alkışa dönüşüyor. Herkes ayağa kalkıyor.)"

Görüşleriniz büyük bir dikkatle dinlenecek, matryoshka web sitesinin oluşturulmasındaki yardımlarınız büyük bir şükranla karşılanacaktır. Kitap hakkında daha kapsamlı bilgi, Matryoshka C'de akıllıca gizlenmiş web sitesinde bulunmaktadır.

Kaynak: habr.com

Yorum ekle