Программирование (реализация, кодирование)

Пример с вычислением площади крышки стола.

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

Порядок разработки программного модуля.

При разработке программного модуля целесообразно придерживаться следующего порядка [8.1]:

  • изучение и проверка спецификации модуля, выбор языка

программирования;

  • выбор алгоритма и структуры данных;
  • программирование модуля;
  • шлифовка текста модуля;
  • проверка модуля;
  • компиляция модуля.

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

На втором шаге разработки программного модуля необходимо выяснить, не известны ли уже какие-либо алгоритмы для решения поставленной и или близкой к ней задачи. И если найдется подходящий алгоритм, то целесообразно им воспользоваться. Выбор подходящих структур данных, которые будут использоваться при выполнении модулем своих функций, в значительной степени предопределяет логику и качественные показатели разрабатываемого модуля, поэтому его следует рассматривать как весьма ответственное решение.

На третьем шаге осуществляется построение текста модуля на выбранном языке программирования. Обилие всевозможных деталей, которые должны быть учтены при реализации функций, указанных в спецификации модуля, легко могут привести к созданию весьма запутанного текста, содержащего массу ошибок и неточностей. Искать ошибки в таком модуле и вносить в него требуемые изменения может оказаться весьма трудоемкой задачей. Поэтому весьма важно для построения текста модуля пользоваться технологически обоснованной и практически проверенной дисциплиной программирования. Впервые на это обратил внимание Дейкстра [8.2], сформулировав и обосновав основные принципы структурного программирования. На этих принципах базируются многие дисциплины программирования, широко применяемые на практике [8.3-8.6]. Наиболее распространенной является дисциплина пошаговой детализации [8.3], которая подробно обсуждается в разделах 8.2 и 8.3.

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

Шаг проверки модуля представляет собой ручную проверку внутренней логики модуля до начала его отладки (использующей выполнение его на компьютере), реализует общий принцип, сформулированный для обсуждаемой технологии программирования, о необходимости контроля принимаемых решений на каждом этапе разработки ПС (см. лекцию 3). Методы проверки модуля обсуждаются разделе 8.4.

И, наконец, последний шаг разработки модуля означает завершение проверки модуля (с помощью компилятора) и переход к процессу отладки модуля.

Следующий этап - программирование, т.е. запись разработанного алгоритма на одном из языков, понятном используемой ЭВМ. В начале необходимо в литературе, в Internet или на дисках поискать подходящие алгоритмы и программы. Если не удастся, то придется разрабатывать самим.

Основными технологическими задачами здесь являются

1) выбор языка программирования;

2) соответствие единому стилю программирования;

3) защитное программирование.

1. Для решения данной задачи на заданной вычислительной технике необходимо обоснованно выбрать язык программирования. Идеального языка нет.

Во многих случаях выбор языка диктуется очень простыми "земными" факторами:

- доступностью того или иного транслятора и

- умением составлять программы на данном языке.

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

ЯП классифицируются:

- по принадлежности к семействам;

- по степени абстракции от аппаратуры;

- по ориентации на разные предметные области;

- по поддерживаемым методологиям.

1. Классификация языков программирования по принадлежности к семействам:

- семейство универсальных языков FORTRAN, ALGOL 60, BASIC, PL1

- семейство уникальных языков COBOL, FORTH, CLU

- семейство языков паралельного программирования EDISSON, CSP, DP, ARGUS

- С-семейство языков C, OBJECTIVE C, LIMBO, JAVA, C9X, C++, C#

- Pascal-семейство языков PASCAL, MODULA 2, OBERON, OBERON 2, COMPONENT PASCAL

- Ada –семейство языков ADA, MESA, CEDAR, MODULA 3

- Simula –семейство языков SIMULA, SMALTALK, BETA

- Lisp –семейство языков LISP, PLANNER, SCHEME, COMMON LISP

- Prolog- семйство языков PROLOG, PARLOG, CLR

2) Классификация ЯП по степени абстракции от аппаратуры:

а)языки низкого уровня (assembler)

б)языки высокого уровня (Pascal, C, Ada)

в)языки свервысокого уровня (Prolog, SETL, APL, Miranda)

3) Классификация ЯП по ориентации на предметные области делятся:

а)языки форматирования текстов TeX, LaTeX, troff, nroff

б)языки разметки XML, HTML, MathML

в)языки скриптов Tcl/Tk, Javascript, Perl

г)промежуточные языки программирования

д)языки программирования агетнов Java,

е)языки описания аппаратуры

ж)языки создания графики

з)языки описания виртуальной реальности

и)языки конфигурирования

4) Классификация ЯП по поддерживаемым методологиям. Часто говорят, что язык поддерживает ту или иную методологию. Это означает, что применение этого языка човместно с указанной методологией в совокупности дадут значительно больший эффект (гл. 2). По поддерживаемым методологиям языки бывают:

- языки структурного программирования (BLISS, PDL, JAVA, MODULA 2, BASIC, C, ADA)

- языки паралельного программирования ADA, OCCAM, MODULA 2

- языки объектно-ориентированного программирования SIMULA, SMALLTALK, BETA, SELF, CECIL, C++, OBJEKT PASCAL

- языки функционального программирования LISP, РЕФАЛ, MIRANDA, SCHEME, HASKELL, FP, ML, STANDART ML

- языки логического программирования PROLOG, MERCURY, PARLOG, GOEDEL

- языки программирования в ограничениях OPL, BERTRAND, OPS5, IDEAL

На выбор языка программирования влияют следующие основные факторы

(критерии выбора языка программирования):


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: