- Menşei
- karakteristikleri
- Yapısal programlama teorisi
- Kontrol Yapıları
- Sıra veya doğrusal yapı
- Karar yapısı veya alternatifler
- Başlangıç sorusuyla döngü veya yinelenen yapı
- Programlama dilinden bağımsız
- Yapılandırılmış programlama örnekleri
- Sıra
- Tekrarlama
- seçim
- Visual Basic'te yapısal programlama
- Sıra
- Tekrarlama
- seçim
- avantaj
- Daha net programlar
- Kolay anlaşılır
- Dezavantajları
- Aynı kod tekrarlandı
- Veri türlerini değiştirmek zahmetlidir
- Uygulamalar
- Nesne işleme
- Referanslar
Yapısal programlama daha iyi dikkate insan düşüncesi özelliklerini alarak karmaşıklığı yönetmek için tasarım ve yazılım inşaat, bir hükümdür. Her program bir algoritmaya dayalıdır ve bir mantık şeması ile temsil edilebilir.
Bilgisayarlı programların artan karmaşıklığından ortaya çıktı. Daha uzun süre çalışması güvenli programlar üretmek için yeni teknikler yaratan yeni bir programlama şeması haline geldi.
Yapısal programlamada karar yapısı ve sıra yapısı. Kaynak: I.hidekazu CC BY-SA (httpscreativecommons.orglicensesby-sa4.0)
Bilgisayarlı veri işlemenin hızlı gelişimi sayesinde, 1960'ların sonlarında giderek karmaşıklaşan sorunları çözmek mümkün oldu. Ancak, bu programları anlamak, hata ayıklamak ve değiştirmek, onları güvenilmez kılan zorluklar ortaya koydu.
Bu sorunlar için yapılan büyük bilgisayar programlarının kaynak kodları o kadar uzun ve yapılandırılmamıştı ki, kendi yazarları için bile bir mantıkla erişmek ve gezinmek oldukça karmaşık hale geldi.
Menşei
Programcılar, genellikle okunabilirliğe yol açan ve mantıksal bir bağlam korunmayan koşullu bir dallanma gerçekleştirmek için programlama dillerinde "goto" komutunu kullandılar.
Bu yazılım krizinde, daha rafine programlara izin verecek genel ve disiplinli bir metodolojinin sistematik olarak geliştirilip geliştirilemeyeceği düşünülmeye başlandı. Bu yaklaşıma yanıt olarak, yapısal programlama yöntemi doğdu.
1968'de Dijkstra, bu komutun gelişigüzel kullanımının bilgisayar programlarının okunabilirliği ve anlaşılması üzerinde olumsuz bir etkiye sahip olduğuna işaret ettiği "Komut zararlı kabul edilen Goto" makalesini yayınladı.
Niklaus Wirth, 1970 yılında piyasaya sürülen Pascal adında yeni bir programlama dili tasarladı. O zamandan beri, yapılandırılmış programlamanın tasarımını öğretmek için yaygın olarak kullanıldı.
karakteristikleri
Bu programlama modu, programcıların programlarının kaynak kodunu döngülerden, mantık bloklarından ve koşullu komutlardan oluşan mantıksal olarak yapılandırılmış bloklara bölebilmesiyle karakterize edilir.
Yapısal programlamanın amacı, yazması, hata ayıklaması ve değiştirmesi kolay programlar yapmaktır. Elde edilen programlar net, düzenli, anlaşılır ve sıçramasızdır.
Yapısal programlama teorisi
Dijkstra, herhangi bir programı tasarlarken aşağıdaki temelleri hesaba katmanın uygun olduğunu belirten yapısal programlamaya bağlı bir teori geliştirdi:
- Herhangi bir programın yalnızca üç temel kontrol yapısı kullanılarak derlenebileceğini belirten yapısal teorem: sıralı yapı, alternatif yapı ve tekrarlayan yapı.
- Programların ana hatlarını çizerken, yukarıdan aşağıya da denilen alçalma tekniğinin uygulanması tavsiye edilir.
- Değişkenlerin ve veri yapılarının geçerlilik ve görünürlük aralıkları sınırlı olmalıdır.
Kontrol Yapıları
Yapısal teorem, tek bir başlangıç ve bitiş noktasına sahip herhangi bir algoritmanın üç kontrol yapısının bir bileşimi olarak oluşturulabileceğini belirtir.
Bu desteklenen kontrol yapılarını mantıksal ve açık bir şekilde programlayarak, yapılandırılmış programlama, herhangi bir zorluk derecesine sahip işlevlere verimli bir yaklaşım sağlar.
Sıra veya doğrusal yapı
Bu yapı, basitçe iki veya daha fazla işlemin veya komutun sırası veya dizisidir.
Karar yapısı veya alternatifler
İki olası alternatif arasında bir komutun seçimidir. İkiden fazla alternatif arasından seçim yapılmasına da izin verilir.
Başlangıç sorusuyla döngü veya yinelenen yapı
Belirli bir koşul karşılandığı sürece belirli komutlar tekrarlanır. Döngü ayrıca bir sayaçla da gerçekleştirilebilir.
Programlama dilinden bağımsız
Yapılandırılmış programlama, sorunun özel doğasına göre sıralanmış, iyi tanımlanmış işlevsel modüllere dayanmaktadır. Bu programlama, programlama dilinin bağımsız bir yöntemidir ve daha çok bir programlama tarzı gibi davranır.
Bunun için belirli bir kontrol yapıları seti kullanarak, iyi belirlenmiş kuralları izleyen programlar tasarlamanın bir yoludur.
Yapısal programlama, programların makine dilinden bağımsız olarak, doğal olana yakın, herhangi bir programlama diline dönüştürülebilir sözde kodla yazılmasına izin verir.
Yapılandırılmış programlama örnekleri
Herhangi bir modern programlama dilindeki hemen hemen her örnek kod parçacığı, yapılandırılmış programlamanın bir örneği olacaktır.
Bu programlama, kodun okunmasını ve yeniden kullanılmasını kolaylaştırmak için akışı ve modülerliği kontrol etmek için döngüler, koşullu ifadeler ve alt rutinler kullanır.
Sıra
Yukarıdan aşağıya doğru sırayla bir ifade listesi yürütülebilir. Bu durumda, örnek olarak ekmek pişirmek için doğal bir dil programı verilmiştir:
- Un ekle.
- Maya ekleyin.
- Tuz ekle.
- Karıştır.
- Su ekle.
- Yoğurun.
- Hamuru kabartın.
- Pişirmek.
Tekrarlama
Koşul doğru olduğu sürece bir ifade bloğu tekrarlanır. Örneğin: bulaşık yıkamak.
seçim
En fazla bir eylem, birkaç alternatif koşul arasından seçilir. Örneğin: postayı sipariş edin.
Visual Basic'te yapısal programlama
Sıra
Satırları veya kod blokları sırayla yazılır ve yürütülür. Örneğin, şunlara sahipsiniz:
x = 6
y = 12
z = x + y
WriteLine (z)
Tekrarlama
Bir koşul karşılanırken bir kod bloğu tekrarlanır. Bloğun kaç kez yürütülebileceği konusunda bir sınır yoktur. Misal:
x = 2
X <100 olduğu sürece
WriteLine (x)
x = x * x
Son
seçim
Bir koşul doğruysa bir kod bloğu yürütülür. Kod bloğu en fazla bir kez çalışır. Misal:
x = ReadLine ()
X Mod 2 = 0 ise
WriteLine ("Sayı çift")
Evet sonu
avantaj
- Müşterilerin ihtiyaçlarını karşılayan programlardır.
- Başlangıçta kodu oluşturmak daha uzun sürse de, genellikle ilk çalıştırıldığında hatasız çalışan kodla sonuçlanır.
- İngilizce kelime ve sembollerin kelime dağarcığına benzer.
- Gelecekte yeni spesifikasyonlarla programdaki değişiklikleri yönetmek kolaydır.
- Bakımı daha kolaydır.
- Kullanımı ve anlaşılması kolaydır. Sonunda kodu yazmak için daha az zaman gerekir. Öğrenmesi daha kolay.
- Yüksek seviyeli bir dilde yazılmış program birçok makine diline çevrilebilir. Bu nedenle, uygun bir çevirmen veya derleyici bulunan herhangi bir bilgisayarda çalıştırılabilir.
- Makine odaklı olmaktan çok problem odaklıdırlar.
- Kullanıldığı bilgisayardan bağımsızdır. Diğer bir deyişle, yüksek seviyeli dillerde geliştirilen programlar herhangi bir bilgisayarda çalıştırılabilir.
Daha net programlar
Yapılandırılmış programlama, bir işlevin diğerini etkileme olasılığını azaltır. Bu, programları daha net hale getirir, çünkü global değişkenler yerel değişkenlerle değiştirilmek üzere kaldırılır.
Bu değişiklik nedeniyle, global bir değişkenin kapladığı bellek ayırma alanı kaydedilebilir.
Kolay anlaşılır
Organizasyon, programların arkasındaki mantığı anlamak için programlama mantığını kolayca anlamaya yardımcı olur.
Ayrıca, herhangi bir teknoloji şirketinden yeni gelenlerin, diğer sektör çalışanları tarafından oluşturulan programları anlamasına yardımcı olarak potansiyel kod hata ayıklamasını kolaylaştırır.
Dezavantajları
- Tercüman veya derleyici, üst düzey dili makine diline çevirmelidir. Bu nedenle, bilgisayar saatinin kullanımında bir bedel ödenmesi gerekmektedir.
- Derleyici tarafından üretilen nesne kodu, eşdeğer bir assembly dili programıyla karşılaştırıldığında verimsiz olabilir.
Aynı kod tekrarlandı
Yazılan kod, programın farklı bölümlerinde görünebilir. Konumundan dolayı çeşitli sorunlara karşı savunmasız olabilir. Programların değişkenleri vardır, bu da programın farklı bölümlerinde farklı değerler alabilecekleri anlamına gelir.
Veri türlerini değiştirmek zahmetlidir
Verilerin türü birçok işlevden gelir. Bu nedenle, bu tür verilerde değişiklik meydana geldiğinde, program içinde bu tür verilere etki eden her konumda karşılık gelen değişiklik yapılmalıdır. Program çok büyükse, bu gerçekten zaman alan bir görevdir.
Birkaç programcının bir uygulamada ekip olarak çalıştığı bir yazılım geliştirme durumu düşünülebilir. Yapılandırılmış bir programda, her programcı belirli bir dizi işlev ve veri türü oluşturmak için atanacaktır.
Bu nedenle, farklı programcılar, birbirleriyle paylaşılan veri türlerine sahip farklı işlevleri ayrı ayrı ele alır.
Takımdaki diğer programcılar, bir programcı tarafından yapılan veri türlerindeki değişiklikleri, işledikleri veri türlerine yansıtmalıdır. Aksi takdirde, birden çok işlevin yeniden yazılması gerekecektir.
Uygulamalar
Yapısal programlama, milyonlarca program ve milyarlarca satır kod için iyi çalıştı. Onu atmak için hiçbir sebep yok.
Özellikle, her ikisi de bir yanıt üretmek için bir kez çalıştırılan verileri işleyen programlar ve sayı işleme için son derece iyi çalıştı.
İki özellik, tamamen yapılandırılmış bir şekilde yaklaşılabilecek sorunları iyi tanımlama eğilimindedir:
- İşlenecek veriler, genellikle sayılar ve karakter dizileri olmak üzere dile entegre edilmiş veri türleriyle yakından eşleşir.
- Program, bazı girdilere dayalı olarak tek bir sonuç üretmek için iyi tanımlanmış bir kontrol akışını takip eder.
Bu özelliklere sahip bilgisayar programları, geleneksel bilgisayar bilimleri derslerinin ders kitabı örneklerinin çoğuna ek olarak birçok bilimsel, mühendislik ve kelime işlem uygulamasını içerir.
Şaşırtıcı olmayan bir şekilde bunlar, programlama dillerini icat eden ilk kişilerin çözmek istediği program türleridir.
Nesne işleme
Çoğu modern programlama dili şu şekilde yapılandırılmıştır: programda sahip olduğunuz nesnelerdir ve çoğu kod, bu nesnelerde depolanan verileri kullanmanın farklı yöntemlerinden oluşur.
Yapılandırılmış bir program genellikle ne olacağı ve ne zaman olacağı üzerinde kontrole sahiptir, oysa olay tabanlı bir program olaylara önceden tahmin edilemeyen zamanlarda yanıt verebilmelidir.
Referanslar
- MVPS (2020). Yapısal programlama. Alındığı: mvps.net.
- Alexey (2019). Yapılandırılmış Programlama Paradigması. Orta. Alındığı kaynak: medium.com.
- Yardımı Dahil Et (2020). Yapısal Programlama, Avantajları ve Dezavantajları. Alınan: includehelp.com.
- Tim Trott (2019). Yapılandırılmış Programlama Dilleri. Lonewolf Çevrimiçi. Alınan: lonewolfonline.net.
- OO Portalı (2020). Geleneksel, Yapılandırılmış Programlamanın Kullanımları ve Faydaları. Alındığı: ooportal.com.
- Studeer Snel (2020). Son inceleme - Özet Yapılandırılmış Programlama Uygulamaları. Alındığı: studeersnel.nl.