Билет №1
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.
Характеристики и свойства языков программирования
Основными характеристиками, позволяющими сравнивать языки программирования и выбирать наилучшие для решения той или иной задачи, являются мощность, уровень и концептуальная целостность.
Мощность языка характеризуется количеством и разнообразием задач, алгоритмы решения которых можно записать, используя данный язык.
Уровень языка характеризуется сложностью решения задач с помощью этого языка. Чем проще записывается решение задач, чем более непосредственно реализуются сложные операции и понятия, чем меньше объем получаемых программ, тем выше уровень языка.
Концептуальная целостность языка характеризуется свойствами совокупности понятий, служащих для описания этого языка, и включает три взаимосвязанных аспекта: экономию, ортогональность, единообразие понятий. Экономия понятий предполагает достижение максимальной мощности языка с помощью минимального числа понятий. Ортогональность понятий означает, что между понятиями не должно быть взаимного влияния. Так, если какое-либо понятие используется в различных контекстах, то правила использования должны быть одни и те же. Единообразие понятий требует согласованного, единого подхода к описанию и использованию всех понятий.
Обычно, чем меньше мощность языка, т. е. чем уже область его применения, тем выше его уровень. По этой причине наряду с универсальными языками разрабатываются и специализированные языки в некоторой конкретной области.
Перечисленные характеристики языков программирования определяют наличие или отсутствие надежности, удобочитаемости, полноты, гибкости, простоты.
Надежность языка обеспечивает минимум ошибок при написании программ.
Удобочитаемость языка – это свойство, обеспечивающее легкость восприятия программ человеком. Это зависит от широкого спектра факторов, включающего, с одной стороны, выбор ключевых слов, а с другой – возможность структурирования программы.
Полнота языка обеспечивает описание на языке решения задач определенной предметной области.
Гибкость языка обеспечивает легкость выражения на языке необходимых для решения задач действий.
Простота языка характеризуется легкостью понимания семантики языковых конструкций и запоминания их синтаксиса.
Пути развития и классификация языков программирования
В самом начале 60-х годов мир компьютерных языков казался очень простым. В программировании господствовали три языка: Фортран, Кобол и Алгол-60. К концу 60-х годов языки стали размножаться.
В 1969 году Джин Сэммит опубликовал книгу «Языки программирования.
Как следует из обзоров, в начале 70-х годов существовало не менее 450 языков высокого.
Первый язык программирования высокого уровня Фортран создан в 1955 г. Он включал самые элементарные средства, многие из которых отражали непосредственно возможности ЭВМ того времени.
Первым действительно универсальным языком программирования был ПЛ/1 (1964 г.), объединивший многие возможности и средства предыдущих языков. Он предоставляет практически все необходимые средства описания алгоритмов, хотя и не столь развитые, как в современных языках, средства описания и обработки таких сложных типов данных, как массивы и структуры, а также простых типов данных.
Параллельно с развитием универсальных языков создавались и специализированные языки, у которых за счет сужения области их использования удавалось построить отдельные высокоуровневые механизмы для описания и данных, и действий. Такими языками являются Лисп (1960 г.), Пролог (1972 г.). Лисп был создан с целью использования его в системах автоматического доказательства теорем. Поэтому он называется также языком искусственного интеллекта.
Первым из значительных этапов в дальнейшем развитии средств описания данных был язык Паскаль (1970 г.). Язык назван в честь французского математика 17 в. Блеза Паскаля, а его автором был Николаус Вирт. Он начал писать Паскаль в 1968 г. Самым главным в Паскале был принцип, согласно которому данные должны представляться в программе в той абстрактной форме, с которой работает программа. Паскаль предоставляет пользователю придумывать свои собственные типы данных на основе богатого набора базовых форм. Паскаль также поощряет использование логической структуры, которая делит программу на небольшие простые подзадачи. Структура Паскаля делает программы легко читаемыми. Паскаль стал «путеводной звездой» зарождавшегося в то время движения за структурное программирование, которое обрело силу в конце 70-х годов.
Delphi
Классификация языков программирования
По степени приближения к аппаратной части компьютера языки программирования можно разделить на языки низкого уровня и языки высокого уровня.
К языкам низкого уровня можно отнести:
·машинные языки – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
·машинно-ориентированные языки – языки программирования, отражающие структуру конкретного типа компьютера (ассемблеры).
Языки высокого уровня не зависят от архитектуры компьютера и могут быть разделены на алгоритмические и неалгоритмические; универсальные и специализированные; процедурные и непроцедурные; структурно-ориентированные, объектно-ориентированные и дискриптивные.
Основные отличия языков высокого уровня от машинных языков состоят в следующем:
- язык высокого уровня обладает гораздо большими выразительными возможностями, т. е. его алфавит шире, что повышает наглядность текста программы;
- набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
- формат предложений достаточно гибок и удобен для использования, что позволяет с помощью одного предложения задать содержательный этап обработки данных;
- требуемые операции задаются в удобном для человека виде, например, в виде общепринятых математических обозначений;
- в языке может быть предусмотрен значительно более широкий набор типов данных по сравнению с набором машинных типов данных.
Алгоритмический язык – язык, предназначенный для отражения структуры алгоритма.
Универсальный язык – язык, предназначенный для решения широкого спектра задач, поддерживающий работу с большим числом типов данных и разнообразные способы их обработки.
Специализированный язык – язык, предназначенный для решения задач из конкретной предметной области, использующий мощный аппарат специальных методов обработки небольшого числа типов данных.
Процедурный язык – язык программирования, в котором для получения нужного решения требуется записать в явном виде последовательность команд.
Непроцедурный язык – язык программирования, пользуясь которым программист может описывать результат работы программы, не указывая, как его можно получить.
Структурно-ориентированный язык – язык программирования, поддерживающий принципы структурного программирования, требующие разбиения программы на небольшие независимые части.
Объектно-ориентированный язык – язык, создающий окружение в виде множества независимых объектов, каждый из которых имеет свои свойства и способы взаимодействия с другими объектами.
Дискриптивный язык – язык, скрывающий от программиста все процедуры решения задачи. Программист строит базу данных, соответствующую проблеме, а затем ставит вопросы, касающихся каких-либо фактов. Транслятор языка анализирует факты, пока не получит решение, либо не установит, что для решения недостаточно информации. Программа состоит из 2-х частей: база данных и цель. База данных содержит конкретные факты и основные принципы соотношения между фактами. Цель – общее описание решения.
Основные понятия языков программирования
Язык программирования – множество текстов (последовательностей символов) некоторого алфавита, удовлетворяющих правилам синтаксиса и задающих порядок вычислений в соответствии с правилами семантики.
Алфавит языка программирования – набор символов, включающий буквы, цифры и специальные знаки. К специальным знакам относятся знаки арифметических операций, знаки операций отношения, разделители, зарезервированные слова.
Синтаксис языка программирования – совокупность правил записи, которым должна удовлетворять любая программа, включает также правила ввода текста программы в ЭВМ. Таким образом, для каждой цепочки (последовательности) символов синтаксис позволяет ответить на вопрос, является ли она текстом на данном языке или нет. Например, запись текста на алгоритмическом языке представляет собой строго линейную последовательность литер, т. е. не допускается использование верхних и нижних индексов (записей типа x2 или ai, j), дробей и т. п.
Семантика языка программирования – правила, определяющие, какие операции и в какой последовательности должна выполнить ЭВМ, работая по программе, т. е. правила толкования синтаксических конструкций.
Объекты данных
Практически все современные универсальные ЭВМ базируются на архитектуре фон Неймана, где двумя главными компонентами являются центральный процессор и память. Память является линейно упорядоченной и состоит из массива адресуемых элементов двоичных данных – слов. В памяти хранятся как программа, так и данные. Вид информации, представляемой каждым словом данных в памяти, может быть различен. Одни слова могут содержать целые числа, другие – символы. При программировании на машинном уровне необходимо точно знать, как эти данные представлены в виде последовательности битов и какие машинные команды должны применяться для реализации требуемых операций. Язык высокого уровня дает программисту абстрактную модель, в которой данные и операции над данными можно специфицировать в проблемно-ориентированных, а не машинно-ориентированных терминах. Язык высокого уровня обеспечивает следующие возможности доступа к объектам данных и их обработки:
-ссылки на объекты данных с помощью определенных пользователем имен, а не конкретных адресов памяти;
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


