Prosedürel dillerin temelleri hemen hemen aynıdır.
Onların teklifi:
- Skaler veri tipleri: genellikle boolean, tamsayılar, değişkenler ve karakterler
- Bileşik veri tipleri: diziler (dizeler özel durumdur) ve yapılar
- Temel kod yapıları: skalerlere göre aritmetik, dizi / yapı erişimi, ödevler
- Basit kontrol yapıları: if-then, if-then-else, while, döngüler için
- Kod blok paketleri: fonksiyonlar, parametreli prosedürler
- Kapsamlar: tanımlayıcıların belirli anlamları olan alanlar
Bunu anlarsan, gezegendeki dillerin% 90'ını iyi anlarsın. Bu dillerin anlaşılmasını biraz zorlaştıran şey, insanların aynı temel şeyleri söylemek için kullandıkları inanılmaz sözdizimi çeşitliliğidir. Bazıları tuhaf noktalama işaretleri içeren kısa notlar kullanır (APL aşırıdır). Bazıları çok fazla anahtar kelime kullanır (COBOL mükemmel bir temsilcidir). Bu önemli değil. Önemli olan, dilin kendi başınıza saçınızı yırtmanıza neden olmadan karmaşık işler yapacak kadar eksiksiz olması. (Window DOS kabuk betiğine hack bazı ciddi dize kodlama deneyin: Turing yetenekli ama her şey gerçekten kötü).
Daha ilginç prosedürel diller sunar
- İç içe veya sözcüksel kapsamlar, ad alanları
- Dinamik depolama tahsisi ile bir işletmenin diğerine gönderme yapmasını sağlayan işaretçiler
- İlgili kodun paketlenmesi: paketler, yöntemlerle nesneler, özellikler
- Daha karmaşık kontrol: özyineleme, süreklilik, kapanışlar
- Özel operatörler: string ve array işlemleri, matematik fonksiyonları
Her ne kadar teknik olarak dillerin mülkiyeti değil, aynı zamanda bu dillerin yaşadığı ekosistemin bir mülkiyeti olmasına rağmen, geliştirme aracının bir parçası olarak kolayca erişilebilen veya dil ile sağlanan kütüphanelerdir. Çok çeşitli kütüphane olanaklarına sahip olmak yazma uygulamalarını basitleştirir / hızlandırır, çünkü bir kişi kütüphanelerin yaptıklarını yeniden icat etmek zorunda kalmaz. Java ve C # yaygın olarak kendi başlarına iyi diller olarak düşünülse de, onları gerçekten faydalı kılan, onlarla birlikte gelen büyük kütüphaneler ve kolayca ulaşılabilir uzantı kütüphaneleridir.
Anlaşılması zor olan diller prosedür dışı dillerdir:
- Hiçbir atama veya yan etkisi olmayan tamamen işlevsel diller
- Sembolik hesaplamanın ve birleşmenin gerçekleştiği Prolog gibi mantık dilleri
- Sorunla eşleşen şekilleri belirlediğiniz desen eşleştirme dilleri ve genellikle eylemler bir eşleşme tarafından tetiklenir
- Kısıtlama dilleri, ilişkileri belirlemenizi ve denklemleri otomatik olarak çözmenizi sağlar
- Her şeyin paralel olarak yürütüldüğü donanım açıklama dilleri
- SQL, Renkli Petri Ağları vb.
Dillerin iki ana temsili stili vardır:
- Tanımlayıcıların ad varlıklarını ve bilgi akışlarını içeren metin tabanlı, tanımlayıcıları varlıkları adlandırmak için kullanan formüllerde örtük olarak kodlanır (Java, APL, ...)
- Varlıkların düğüm olarak çizildiği ve varlıklar arasındaki ilişkilerin bu düğümler arasında açık yaylar olarak çizildiği grafiksel (UML, Simulink, LabView)
Grafik diller genellikle metin alt dillerine düğümlerde ve yaylardaki ek açıklamalar olarak izin verir. Garip grafik dilleri tekrar tekrar grafiklere izin verir (metin :) düğümlerde ve yaylarda. Gerçekten garip grafik dilleri, açıklama grafiklerinin açıklamalı grafiklere işaret etmesine izin verir.
Bu dillerin çoğu çok az sayıda hesaplama modeline dayanmaktadır:
- Lambda matematiği (Lisp ve tüm işlevsel diller için temel)
- Post sistemleri (veya string / ağaç / grafik yeniden yazma teknikleri)
- Turing makineleri (durum değişikliği ve yeni hafıza hücrelerinin seçimi)
Endüstrinin çoğu tarafından prosedürel diller ve karmaşık kontrol yapıları üzerine odaklanıldığında, bu kategorideki daha ilginç dillerden birini, özellikle de bir nesne yönelimi içeriyorsa, iyi öğrenirseniz, size iyi hizmet verilmektedir.
Özellikle şahane bir kitaptan öğrenme planını şiddetle tavsiye ederim:
Bilgisayar Programlarının Yapısı ve Yorumlanması . Bu, tüm bu temel kavramları açıklar. Bunları biliyorsanız, diğer dillerin saçma sözdizimi dışında oldukça basit görünecek.