Реклама:

Языки четвертого поколения часто называют «непроцедурными» языками. Последнее означает, что они близки к «человеческому» языку по своему построению и использованию. Ранние, «процедурные» языки программирования Кобол, Паскаль, Ада и др. предписывают, что для выполнения нужной обработки она должна быть записана процедурным форматированным способом. В процедурных языках конструкции последовательность, выбор, повторение и ветвление должны кодироваться явно.

Теоретически настоящий язык четвертого поколения не требует написания в процедурной форме. Для таких языков методы конструирования наподобие методики Джексона становятся в основном необязательными. Однако в настоящее время имеется очень мало (если они вообще существуют) доступных по-настоящему непроцедурных языков программирования, если не считать некоторые языки, выполняющие только весьма тривиальные функции.

Итак, несмотря на то, что такие языки четвертого поколения, как Focus и Mark V, обладают исключительно мощными возможностями, большинство из них все еще требуют процедурного подхода для генерации сколько-нибудь полезных программ. Поэтому в большинстве случаев методика Джексона может все же эффективно служить в сочетании с этими мощными языками для получения программ и систем.

Основное влияние ЯЧП на процесс конструирования состоит в том, что часто исчезает необходимость явного кодирования «нижних» уровней структуры программы, потому что каждый отдельный оператор языка достаточно выразителен для того, чтобы включать несколько функций нижнего уровня. Этот эффект иллюстрируется на рис. 9.1.

Кинг Д. Создание эффективного программного обеспечения

Рис. 9.1. Влияние языков четвертого поколения на процесс конструирования.

Из рис. 9.1 видно, что может не понадобиться явно кодировать на предполагаемом языке четвертого уровня некоторые программные компоненты нижнего уровня. Следует также отчетливо понимать, что применение таких языков фактически наиболее эффективно скажется на конструкции программ, а не на процессе их разработки.

9.4. Прикладные генераторы

Теоретически прикладные генераторы основываются на проекте системы программного обеспечения, которая будет автоматически конструировать прикладные программы и системы при условии, что имеется ясный и исчерпывающий набор требований к ним. Чем сложнее прикладной генератор, тем меньше нужно детализировать требования. Такова теория!

К сожалению, отнюдь не многие из пакетов, задуманных как прикладные генераторы, на деле выполняют столь сложную работу. В своеч большинстве это весьма хорошие языки четвертого поколения высокого уровня; некоторые из них даже заслуживают того, чтобы их называли непроцедурными.

Если существуют прикладные генераторы, которые на самом деле воспримут исчерпывающий набор требований к программе или системе и построят на их основании нужные программы, то, разумеется, в такой ситуации вполне можно было бы обойтись без какой-либо процедурной методики конструирования.

Личное мнение автора состоит в том, что в конце концов все действительно нужные прикладные системы будут генерироваться сложными автоматическими прикладными генераторами. Причем с учетом наблюдаемого в настоящее время нарастающего технологического прогресса, а также увеличения потребностей в более интенсивной прикладной обработке данных может оказатся, что не столь уж далек день, когда этот предсказуемый инструментарий поступит в позседневное употребление.


⇐ Предыдущая страница| |Следующая страница ⇒