Общие сведения о языках программирования 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Общие сведения о языках программирования



5.1.1. Назначение языков программирования

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

5.1.2. Требования к языкам

Главных требований два: близость ЯП к обычному профессиональному языку определенной сферы человеческой деятельности и простота реализации в ВС. Противоречивость требований стимулирует непрерывный процесс создания новых ЯП и доработки существующих. Но аппаратные средства ЭВМ стремительно совершенствуются (растет быстродействие, расширяются объемы памяти), теория и практика перевода программ с ЯП на язык команд ЭВМ тоже быстро развиваются. В условиях такой динамики фактор удобства программирования постепенно становится доминирующим. Это вызвало появление так называемых языков «сверхвысокого» уровня, самыми характерными из которых можно считать Лисп и Пролог.

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

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

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

Универсальные и проблемно - ориентированные ЯП. Арсенал средств первых должен (по крайней мере, так замышлялось при создании этих языков) давать равные возможности для работы с задачами из различных профессиональных сфер. Наиболее характерным примером может служить язык ПЛ/1, который в 1970–80-х годах распространился довольно широко, но из-за большой сложности и малой эффективности использования ресурсов ЭВМ постепенно отошел на задний план. Пример языков второй группы — Фортран (название является аббревиатурой английского наименования «переводчик формул»), ориентированный на научно-технические и инженерные расчеты (в силу своих немалых достоинств Фортран и поныне в ходу). Классификация по этому признаку часто весьма условна.

Процедурные и декларативные ЯП. Первые (их называют также императивными, то есть «повелевающими») предполагают более или менее подробное описание того, что и как нужно сделать для получения результата. К этой группе относят самые распространенные ЯП — Бейсик, Паскаль, Си. Декларативные ЯП описывают не алгоритм решения задачи, а саму задачу, оставляя на «усмотрение» системы программирования этого языка (см. ниже) конкретизацию алгоритма. Пример языков этой группы — Пролог. Язык Лисп обладает чертами тех и других ЯП.

5.1.4. Версии языка

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

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

5.1.5. Области применения языков программирования

Перечень областей весьма велик и быстро расширяется. Можно (также с большой долей условности) разграничить их таким образом:

  • научные, экономические и инженерные вычисления;
  • моделирование процессов и устройств;
  • автоматизированные системы научных исследований;
  • системы автоматизированного проектирования (САПР, CAD);
  • обработка графической, аудио- и видеоинформации;
  • работа с большими базами данных, в том числе в вычислительных сетях (Интернет и др.);
  • робототехника, станки с ЧПУ, гибкие производственные системы;
  • управление технологическими процессами;
  • системы обработки текстов — редакторы, переводчики, издательские системы;
  • интеллектуальные и экспертные системы, базы знаний;
  • сетевые приложения;
  • образовательные программы (обучающие, контролирующие, тренажерные);
  • игровые программы;
  • системное программирование, то есть разработка операционных систем ЭВМ, инструментальных оболочек, средств автоматизации программирования.

5.1.6. Подход к выбору языка

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

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

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

Кратко опишем основные компоненты системы программирования.

5.2.1. Текстовый редактор

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

5.2.2. Транслятор. Компиляция и интерпретация

Трансляторомназывают подсистему, которая переводит текст с ЯП на другой язык, близкий к внутреннему языку команд ЭВМ. Трансляторы основываются на принципах компиляции (они наиболее распространены) или интерпретации.

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

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

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

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

5.2.3. Библиотека стандартных программ

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

5.2.4. Загрузчик

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

5.2.5. Исполнительная подсистема

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

5.2.6. Диагностическая подсистема

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

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

Полный перечень диагностических сообщений обычно приводится в пособиях по конкретным ЯП.

5.2.7. Сервисные средства

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

5.2.8. Интегрированная среда

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

 



Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 480; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.5.68 (0.01 с.)