Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии 


Языки и среды программирования.




Языки и среды программирования.

 

АЛГОРИТМЫ.

Алгоритм должен быть понятен (доступен) пользователю или машине. Доступность пользователю означает, что он обязан отображаться посредством конкретных формализованных изобразительных средств, понятных пользователю.

Способы записи алгоритмов:

  1. словесный – содержание последовательных этапов алгоритма описывается в произвольной форме на естественном языке;
  2. формульный – основан на строго формализованном аналитическом задании необходимых для исполнения действий.
  3. табличный – подразумевает отображение алгоритма в виде таблиц, использующих аппарат реляционного исчисления и алгебру логики для задания подлежащих исполнению взаимных связей между данными, содержащиеся в таблице.
  4. операторный – базируется на использовании для отображения алгоритма условного набора стандартных операторов (например, логических, печатей вывода-ввода); операторы снабжаются индексами и между ними указываются необходимые переходы.
  5. графический – отображение алгоритмов в виде блок-схем. Графические символы, отображающие выполняемые процедуры стандартизированы. Наряду с основными символы используются и вспомогательные поясняющие процедуры и связи между ними.
  6. на языке программирования - в виде последовательности команд какого-либо языка программирования.

 

Базовые структуры алгоритмов:

  1. Линейными называются алгоритмы, в которых действия выполняются друг за другом в определённом порядке.
  2. Разветвляющимся называется алгоритм, который, в отличие от линейных алгоритмов, входят условия в зависимости от выполнения или нет которого реализуется та или иная последовательность команд. В качестве условия в разветвляющимся алгоритме может быть использовано любое понятное исполнителю утверждение, которое может соблюдаться (быть истинным) или не соблюдаться (быть ложным). Такое утверждение может быть выражено как словами, так и формулой.
  3. Циклическимназывается алгоритм, в котором некоторая последовательность операций выполняется многократно, однако многократно не означает неограниченно. Организация циклов никогда не приводящих к остановке в выполнении алгоритма является нарушением требований его результативности – получение результата за конечное число шагов.

 

ЯЗЫКИ И СИСТЕМЫ ПРОГРАММРОВАНИЯ.

 

Способы описания ЯП.

Для описания ЯП используются две системы описания:

  1. Нотация Бэкуса – впервые предложена при описании языка Algol;
  2. Нотация IBM (разработана фирмой для описания языков Cobol и JCL).

 

Обе нотации используют следующее обозначение: < > - угловые скобки (или двойные кавычки) обозначают элемент программы, определяемый пользователем (<Идентификатор>, <Список параметров>, “Условие” и пр.). В соответствующих местах реальной программы будет находится идентификатор переменной, список параметров и прочее.

 

Нотация Бэкуса содержит конструкцию следующего вида:

<Оператор присваивания> := <Переменная> := <Выражение>

<Идентификатор> ::= <Буква> | <Идентификатор> <Буква> |

<Идентификатор> <Цифра>

 

17.01.14

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

Правая часть включает совокупность элементов, соединённых знаком |, которая трактуется как «или» и объединяет альтернативы – различные варианты значения, определяемого элемента. Части соединяются оператором ::=, который может трактоваться, как является по определению.

 

Нотация IBM включает следующие элементы:

  1. [ ] - квадратные скобки, обозначают возможное отсутствие элемента конструкции. Например, return [<выражение>] – в этой конструкции <выражение> не обязательно;
  2. { } – фигурные скобки, {<выражение-1> | <выражение-2> | <выражение-3>}

означает обязательное присутствие одного из <выражений>

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

{<выражение>} [,<выражение>]…} обозначает, что одно или более <выражений>, разделённых запятыми, может появиться между фигурными скобками.



 

Рекурсивное определение в IBM-нотации не используются.

 

СИСТЕМЫ ПРОГРАММИРОВАНИЯ.

 

Система программирования (СП) является инструментальным средством программиста – разработка системных или прикладных программ. Первоначально, в ранних ОС, системы программирования входили в состав ОС и были доступны только «избранным».

 

Широкое распространение ПЭВМ и доступность СП привели к приобщению широких кругов пользователей к увлекательному занятию – написанию собственных программ в самых различных средах.

Современные СП обычно предоставляют пользователям такие средства разработки программ, как:

· Создание и редактирование текстов программ;

· Компилятор или интерпретатор;

· Библиотеки стандартных процедур и функций;

· Утилиты (вспомогательные рабочие программы);

· Отладчик (средство, помогающее находить и устранять ошибки в программе);

· Редактор связи;

· Встроенная справочная служба.

Эти инструменты взаимодействуют между собой через обычные файлы с помощью стандартных возможностей файловой системы.

 

Классификации СП

Признак классификации Типы
Набор исходных языков Одноязыковые Многоязыковые
Возможности расширения Замкнутые Открытые
Трансляция Компиляция Интерпретация

 

Различают системы общего назначения и языково-ориентированные системы.

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

Языково-ориентированные системы предназначены для поддержки разработки программ на каком-либо языке программирования, причем построение такой среды базируется на знаниях об этом языке.

 

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

 

Каждый конкретный язык программирования ориентирован либо на компиляцию, либо на интерпретацию – в зависимости от того, для каких целей он создавался. Например, Pascal обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данных язык обычно реализуется с помощью компилятора. С другой стороны, Basic создавался как язык для обучения алгоритмизации и программированию, в этом случае построчное выполнение программы делает процесс обучения более наглядным. Иногда для одного языка имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость её выполнения.

 

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

Популярные системы программирования: Turbo Basic, Quick Basic. Turbo Pascal, Turbo C.

 

Структура абстрактной многоязыковой, открытой, компилирующей СП и процесс разработки приложений:

· Ввод. Программа на исходном языке (исходный модуль) готовится с помощью текстовых редакторов и в виде текстового файла или раздела библиотеки поступает на вход компилятора.

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

Препроцессинг – необязательная фаза, состоящая в анализе исходного текста, извлечения из него директив препроцессора и их выполнения.

Директивы предпроцессора представляют собой помеченные спецсимволы (обычно %, #, &) строки, содержащие аббревиатуры, символические обозначения и т.д., конструкций, включаемых в состав исходной программы перед её обработкой компилятором.

Данные для расширения исходного текста могут быть стандартными, определяться пользователем либо содержаться в системных библиотеках ОС.

В качестве примера рассмотрим директивы, определяющие функционирование компилятора в СП Pascal.

 

Каждая директива компилятор заключается в фигурные скобки, и начинаются с символа «$», после которого без пробела должно быть указано имя директивы: ($I+), ($IFDEF), (@ELSE).

 

Различают 3 вида директив препроцессора:

· Ключевые директивы;

· Директивы параметров;

· Директивы условной компиляции.

 

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

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

Примеры ключевых директив:

· { $I+ } или { $I - } – соответственно включает или отключает контроль ошибок файлового ввода-вывода;

· { $R + } или {$R - } – директивы компилятора, включающие и отключающие проверку диапазона целочисленных значений и индексов.

 

Директивы параметров задают значения различных параметров, например имена файлов, размеры отводимой памяти. Ключевые директивы и директивы параметров обычно имеют установки по умолчанию.

 

Директивы условной компиляции позволяют в зависимости от задания тех или иных условий компилировать или исключать из программы на стали компиляции отдельные фрагменты кода. Условная компиляция даёт возможность программисту управлять компиляцией программного кода, например, использование во фрагменте кода директив:

{ $iFOPT Q+ }

{ $ENDIF }

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

 

Компиляция – в общем случае многоступенчатый процесс, включающий следующие фазы:

· Лексический и морфологический анализ – проверка лексического состава входного текста и перевод составных символов (операторов, скобок, идентификаторов и пр.) в некоторую промежуточную внутреннюю форму (таблицы, графы, стеки, гиперссылки), удобную для дальнейшей обработки

· Синтаксический анализ – проверка правильности конструкций, использованных программистом при подготовке текста;

· Семантический анализ – выявление несоответствий типов и структур переменных, функций и процедур;

· Генерация объектного кода – завершающая фаза трансляции.

 

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

 

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

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

 

Загрузка программы.

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

 

 

17.02.2014

РАЗРАБОТКА И РАЗВИТИЕ ПО.

 

Работа по решению прикладной задачи на компьютере происходит через следующие этапы:

1. постановка задачи;

2. математическая формализация;

3. алгоритмизация;

4. составление программы на языке программирования;

5. отладка и тестирование программы;

6. анализ полученных результатов.

 

Технологическая цепочка решения задачи на ЭВМ предусматривает возможность возвратов на предыдущие этапы после анализа полученных результатов. Часто в эту цепочку включают ещё один пункт: составление сценария интерфейса (т.е. взаимодействие между пользователем и компьютером во время исполнения программы).

 

 


Постановка задачи:

1. формулировку условия задачи;

2. определение конечных целей решения задачи;

3. описание исходных данных (их типов, диапазонов возможных значений, структуры и т.п.);

4. определение формы выдачи результатов.

 

На этом этапе необходимо чётко определить, что именно известно и что требуется получить в результате.

 

Построение алгоритма.

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

  1. выбор формы записи алгоритма (естественный язык, блок-схема, псевдокод);
  2. проектирование алгоритма.

 

Отладка и тестирование.

Отладка программы предполагает следующие действия:

  1. синтаксическую отладку;
  2. отладку семантики и логической структуры;
  3. тестовые прогоны и анализ результатов тестирования.

 

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

 

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

 

Частотный принцип.

Основан на выделении в алгоритмах и в обрабатываемых структурах групп действий и данных по частоте использования. Для действий, которые часто встречаются при разработке ПО, обеспечиваются условия их наиболее быстрого выполнения. К данным, к которым происходит частое обращение, обеспечивается наиболее быстрый доступ. «Частые» операции стараются делать более короткими.

 

Принцип модульности.

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

 

Способы обособления составных частей ПО в отдельные модули могут быть существенно различными. Чаще всего разделение происходит по функциональному признаку. В значительной степени разделение системы на модули определяется используемым методом проектирования ПО.

 

Принцип генерируемости.

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

 

Принцип «умолчания».

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

 

Общие системные принципы.

При создании и развитии ПО рекомендуется применять:

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

 

03.03.2014

Типы пользователей.

Можно выделить три квалификационные категории пользователей, которые занимаются разработкой и использованием ПО:

  1. Разработчики ПО – специалисты в области применения в ЭВМ, способные разрабатывать базовые методы, средства и оснащение ПО, общесистемное ПО, инструментальные и технологические средства, осуществлять генерацию и настройку ПО на условии конкретного применения.
  2. Пользователи, которые хорошо знают тонкости построения системы и могут её модифицировать, т.е. прикладные программисты, которые знают методологию проектирования, алгоритмы прикладной области и могут разрабатывать специализированное ПО, используя общесистемное ПО.
  3. Пользователи, работающие в системе с помощью ориентированного на них языка взаимодействия. Процесс работы в этом случае сводится к заданию исходных данных, постановки задачи, проведению расчётов, анализу результатов и принятию решений.

 

Способность к обучению.

Человек обучается постепенно. Степень (образованности) ЭВМ определяется её ПО. Желательно, чтобы содержание информации, получаемой на запросе пользователя, могло изменяться по требованию пользователя.

Обращение с информацией.

Ёмкость мозга человека для сохранения детализированной информации невелика, но обладает интуитивной неформальной возможностью её организации. Эффективность вторичного обращения к памяти зависит от времени. В ЭВМ ёмкость памяти большая, организация – формальное и детализированное, вторичное обращение не зависит от времени. Поэтому целесообразно накапливать и организовывать информацию автоматическим путём и осуществлять её быстрый вызов по удобным для человека критериям.

Оценка информации.

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

Отношение к ошибкам.

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

Терпение.

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

Самочувствие.

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

Эмоциональность.

Это чувство свойственно человеку и чуждо ЭВМ. ПО должно возбуждать у пользователя положительные эмоции и не допускать отрицательных

 

Языки и среды программирования.

 

АЛГОРИТМЫ.

Алгоритм должен быть понятен (доступен) пользователю или машине. Доступность пользователю означает, что он обязан отображаться посредством конкретных формализованных изобразительных средств, понятных пользователю.

Способы записи алгоритмов:

  1. словесный – содержание последовательных этапов алгоритма описывается в произвольной форме на естественном языке;
  2. формульный – основан на строго формализованном аналитическом задании необходимых для исполнения действий.
  3. табличный – подразумевает отображение алгоритма в виде таблиц, использующих аппарат реляционного исчисления и алгебру логики для задания подлежащих исполнению взаимных связей между данными, содержащиеся в таблице.
  4. операторный – базируется на использовании для отображения алгоритма условного набора стандартных операторов (например, логических, печатей вывода-ввода); операторы снабжаются индексами и между ними указываются необходимые переходы.
  5. графический – отображение алгоритмов в виде блок-схем. Графические символы, отображающие выполняемые процедуры стандартизированы. Наряду с основными символы используются и вспомогательные поясняющие процедуры и связи между ними.
  6. на языке программирования - в виде последовательности команд какого-либо языка программирования.

 

Базовые структуры алгоритмов:

  1. Линейными называются алгоритмы, в которых действия выполняются друг за другом в определённом порядке.
  2. Разветвляющимся называется алгоритм, который, в отличие от линейных алгоритмов, входят условия в зависимости от выполнения или нет которого реализуется та или иная последовательность команд. В качестве условия в разветвляющимся алгоритме может быть использовано любое понятное исполнителю утверждение, которое может соблюдаться (быть истинным) или не соблюдаться (быть ложным). Такое утверждение может быть выражено как словами, так и формулой.
  3. Циклическимназывается алгоритм, в котором некоторая последовательность операций выполняется многократно, однако многократно не означает неограниченно. Организация циклов никогда не приводящих к остановке в выполнении алгоритма является нарушением требований его результативности – получение результата за конечное число шагов.

 





Рекомендуемые страницы:


Читайте также:



Последнее изменение этой страницы: 2016-04-10; Просмотров: 4142; Нарушение авторского права страницы


lektsia.com 2007 - 2021 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.047 с.) Главная | Обратная связь