Понятие о программировании

Автор работы: Пользователь скрыл имя, 14 Октября 2010 в 18:14, Не определен

Описание работы

Языки программирования

Файлы: 1 файл

работа.doc

— 257.50 Кб (Скачать файл)

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

    1. Инструментарий  технологии программирования

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

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

    В рамках этих направлений сформировались следующие группы программных продуктов:

    1. средства для создания приложений (совокупность языков и систем программирования, а также различные программные комплексы для отладки и поддержки создаваемых программ.), включающие:
    • локальные средства, обеспечивающие выполнение отдельных работ по созданию программ; включают языки и системы программирования, а также инструментальную среду пользователя;
    • интегрированные среды разработчиков программ, обеспечивающие выполнение комплекса взаимосвязанных работ по созданию программ, повышающие производительность труда программистов;
    1. CASE -технология (Computer - AidedSystem Engineering), представляющая методы анализа, проектирования и создания программных систем и предназначенная для автоматизации процессов разработки и реализации информационных систем.

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

    Средства CASE -технологий делятся на две группы:

    • встроенные в систему реализации - все решения по проектированию и реализации привязаны к выбранной системе управления базами данных (СУБД);
    • независимые от системы реализации - все решения по проектированию ориентированы на унификацию начальных этапов жизненного цикла и средств их документирования, обеспечивают большую гибкость в выборе средств реализации.

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

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

    Большинство CASE -технологий использует также метод «прототипов» для быстрого создания программ на ранних этапах разработки. Кодогенерация программ осуществляется автоматически - до 90% объектных кодов и текстов на языках высокого уровня, а в качестве языков наиболее часто используются Ада, Си, Кобол.

    Сегодня лидирующей в мире CASE-системой считается Rational Rose корпорации Rational Software. Система Rational Rose нацелена на создание модулей с использованием языка Unified Modeling Language (UML). Последняя версия  CASE-системы этой компании уже вовсю применяется для создания коммерческого ПО и поддерживает популярные языки программирования Java, С++, Смолток, Ада, Visual Basic и Forte.

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

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

2.  Языки программирования 

    1. Понятие языка программирования

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

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

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

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

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

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

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

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

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

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

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

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

    Компилятор  создаёт законченный результат  - программу в машинных кодах. Затем эта программа выполняется. Откомпилированный вариант исходной программы можно сохранить на диске. Для повторного выполнения исходной программы компилятор уже не нужен. Достаточно загрузить с диска в память компьютера откомпилированный в предыдущий раз вариант и выполнить его.

    Существует  другой способ сочетания процессов  трансляции и выполнения программы. Он называется интерпретацией. Суть процесса интерпретации состоит в следующем. Вначале переводится в машинные коды, а затем выполняется первая строка программы. Когда выполнение первой строки окончено, начинается перевод второй строки, которая затем выполняется и так далее. Управляет этим процессом программа-интерпретатор.

    Интерпретатор- это программа, предназначенная для построчных трансляции и выполнения исходной программы. Такой процесс называется интерпретацией.

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

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

    Иногда  один и тот же язык может использовать и компилятор, и интерпретатор. К  числу таких языков относится, например, Бейсик. 

    1. Классификация языков программирования

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

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

    • высокое качество создаваемых программ (компактность и скорость  выполнения);
    • возможность использования конкретных аппаратных ресурсов;
    • предсказуемость объектного кода и заказов памяти;
    • для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
    • трудоемкость процесса составления программ ( особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
    • низкая скорость программирования;
    • невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

    Машинно-ориентированные  языки по степени автоматического  программирования подразделяются на классы.

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

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

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

Информация о работе Понятие о программировании