ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 40
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Исполнимый код — это законченная программа, которую можно запустить на любом компьютере, где установлена операционная система, для которой эта программа создавалась. Как правило, итоговый файл имеет расширение .ЕХЕ или .СОМ.
4. Библиотеки функций — для подключения стандартных функций к программе. Такие функции содержатся в библиотеках - файлах со стандартным расширением .LIB или .TPL, которые поставляются вместе с компилятором
5. Отладчик (DEBUGGER) – инструментальное средство для поиска и исправления ошибок.
Позволяет анализировать работу программы во время ее выполнения, дает возможность выполнить отдельные операторы по шагам.
Для автоматизации процесса создания программ используются системы программирования. Системой программирования называется совокупность языковых и программных средств, предназначенных для написания, тестирования и отладки программ для ЭВМ.
Современные системы программирования включают в себя все указанные компоненты и называются интегрированными системами.
Исходный текст программы можно получить без записи его вручную в текстовом редакторе. Существуют системы визуального программирования — RAD-среды (Rapid Application Development), которые, не исключая возможности записи программы вручную, позволяют создавать текст программы автоматически, путем манипуляций со стандартными элементами управления, включенными в RAD-среду. Поэтому для RAD-среды понятие «программирование» часто заменяют понятием «проектирование».
Основные этапы компьютерного решения задач
-
Постановка задачи. Основное требование к постановке задачи – достаточное количество информации для решения задачи. Очень часто постановка задачи выполняется не программистом, а некоторым Заказчиком. Программист является Исполнителем заказа. От него требуется добиться от Заказчика полной информации о решаемой задаче. -
Моделирование и формализация задачи.
Формализация — это замена реального объекта или процесса его формальным описанием, т. е. его информационной моделью.
Информационная модель — это описание объекта моделирования.
Как правило, в результате формализации создается математическая модель предметной области.
Модель — упрощенное подобие реального объекта или процесса, который отражает существенные
особенности изучаемого реального объекта, явления или процесса.
Моделирование – исследование объектов познания (предметов, процессов или явлений) путем построения и изучения их моделей.
-
Разработка алгоритма - представляет собой реализацию идеи решения задачи.
Основные принципы разработки алгоритма:
-
Принцип поэтапной детализации алгоритма (другое название — "проектирование сверху-вниз"). Этот принцип предполагает первоначальную разработку алгоритма в виде укрупненных блоков (разбиение задачи на подзадачи) и их постепенную детализацию. -
Принцип "от главного к второстепенному", предполагающий составление алгоритма, начиная с главной конструкции. -
Принцип структурирования, т.е. использования только типовых алгоритмических структур при построении алгоритма.
-
Программирование алгоритма. Программирование является формальной записью алгоритма средствами языка программирования. Программа — это детальное и законченное описание алгоритма средствами языка программирования. Процесс выполнения программы называется вычислительным процессом.
-
Тестирование программы – процесс поиска ошибок в программе. Для этого либо используют специальные средства отладки программ, имеющиеся в интегрированной среде языка программирования, либо временно добавляют в программу команды вывода промежуточных значений. -
Отладка программы – процесс устранения ошибок -
Документирование программы – подготовка документов, сопровождающих программный продукт. Эти документы описывают то, как работает программа и/или то, как её использовать. -
Эксплуатация программы, интерпретация и анализ результатов. В сложных программах может быть недостаточно тестирования для устранения всех ошибок. Очень час-то они обнаруживаются на стадии эксплуатации заказчиком.
Языки программирования
Классификация языков программирования
В современной информатике существуют два основных направления развития языков программирования: процедурное и непроцедурное.
Рис. 1. Общая классификация языков программирования
Процедурные (алгоритмические) языки предназначены для однозначного описания алгоритмов; для задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения.
Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций.
Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1.
Среди операционных известны Фортран, Бейсик, Фокал.
2. Непроцедурные (декларативные) языкипрограммирования ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания.
К непроцедурному программированию относятся функциональные и логические языки.
В функциональных языках программа описывает вычисление некоторой функции. Один из основных элементов функциональных языков - рекурсия. Присваивания и циклов в классических функциональных языках нет.
Примеры функциональных языков: Haskell –чистый функциональный, LISP (Джон МакКарти), APL — язык программирования, оптимизированный для работы с массивами.
В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком.
Классическим языком логического программирования считается Пролог. Построение логической программы вообще не требует алгоритмического мышления, программа описывает статические отношения объектов, а динамика находится в механизме перебора и скрыта от программиста.
Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта.
-
Можно выделить еще один класс языков программирования - объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме.
В основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в
форме взаимодействующих процедур
Примером такого языка может служить язык программирования визуального общения Object Pascal. К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java.
Всякий язык программирования имеет три основные составляющие: алфавит, синтаксис и семантику.
Алфавит языка программирования – совокупность допустимых символов (включает буквы, символы и спец. знаки).
Синтаксис языка программирования – это набор правил построения конструкций языка (совокупность правил записи, которым должна удовлетворять любая программа).
Семантика языка программирования – это совокупность значений (смысл) всех конструкций языка.
Во всяком языке программирования определены способы организации данных и способы организации действий над данными.
Уровни языков программирования
Одним из важнейших классификационных признаков процедурного, логического и объектно-ориентированного языка является его уровень. Уровень языка программирования определяется семантической (смысловой) емкостью его конструкций и степенью его ориентации на программиста. Чем более язык ориентирован на человека, тем выше его уровень.
Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности,то он называется языком программирования низкого уровня (операторы языка близки к машинному коду и ориентированы на конкретные команды процессора).
Языком самого низкого уровня является язык ассемблера, который просто представляет каждую команду машинного кода, но не в виде кода, а с помощью символьных условных обозначений, называемых мнемониками.
С помощью языка низкого уровня создаются очень эффективные и компактные программы. С другой стороны, при этом требуется очень хорошо понимать устройство компьютера, затрудняется отладка больших приложений, а результирующая программа не может быть перенесена на компьютер с другим типом процессора. Подобные языки обычно применяют для написания небольших системных приложений, например, драйверов устройств и утилит. В машинной графике на языке ассемблера пишутся библиотеки.
Языки программирования высокого уровня значительно ближе и понятнее человеку, нежели компьютеру. Языки программирования высокого уровня (ЯПВУ) являются машинно-независимыми языками.
Особенности компьютерных архитектур не учитываются, поэтому программы, написанные на языках высокого
уровня легко переносятся на другие платформы, для которых создан транслятор этого языка.
Поколения языков программирования
1-поколение: языки, созданные в нач. 50-х годов (первый язык ассемблера: одна инструкция – одна строка)
2-е поколение: кон.50-нач 60-х гг. – разработан символический ассемблер, появилось понятие переменной (полноценный язык программирования).
3-е поколение: 60-е гг. – появились универсальные языки высокого уровня, которые применяются и по сей день. (Фортран, Алгол, COBOL).
4-е поколение: с нач.70-х гг. – по сей день: языки высокого уровня, ориентированные на специализированные области применения и предназначенные для реализации крупных проектов (Pascal, C++, Perl)
5-е поколение: сер. 90-х гг.: системы автоматич. создания прикладных программ с помощью визуальных средств разработки, без знания программирования. (Си Шарп, XML)