sonyps4.ru

Лекция Языки и системы программирования. Структура данных

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

Общие сведения

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

  • машинные (языки программирования низкого уровня);
  • машинно-ориентированные (ассемблеры);
  • машинно-независимые (высокого уровня);

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

  1. Java.
  2. HTML.
  3. Visual Basic.
  4. Delphi.

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

Основы программирования

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

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

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

Разработка приложений

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

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

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

SQL

Специализированный язык программирования предназначен в первую очередь для работы с системами управления базами данных и их программирования. SQL переводится как "специализированный Поскольку в последние десятилетия рынок СУБД вырос многократно, популярность этого языка не становится сюрпризом.

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

Javascript

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

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

XML

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

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

Программируем по-русски

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

  • 1С:Предприятие. Целая система, предназначенная для управления организацией во всех сферах деятельности. Нередко в объявлениях по поиску сотрудников можно встретить "Программист 1С".
  • Глагол. Аналог англоязычного Pascal.
  • Робик. Специализированный язык программирования, предназначенный для обучения детей основам программирования.
  • Рапира. Язык с основанный на процедурах.

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

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

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

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

Под системой счисления обычно понимается совокупность приемов наименования и обозначения чисел. Обычная система записи чисел представляет собой позиционную десятичную систему счисления в соответствии с тем, что от позиции, занимаемой любой из используемых в этой системе цифр, зависит ее числовое значение. Двоичная система счисления является простейшей, так как в ней используются только две цифры: 0 и 1, а восьмеричная система счисления удобна тем, что основание ее, а именно числовое значение 8, является степенью основания двоичной системы счисления 2. Например, десятичное число 65 можно представить

· в десятичной системе счисления:

6 × 101 + 5 × 100 = 65;

· в восьмеричной системе как

1 × 82 + 0 × 81 + 1 × 80 = 101;

· и в двоичной системе счисления в виде

1 × 26 + 0 × 25 + 0 × 24 + 0 × 23 + 0 × 22 + 0 × 2l + 1 × 20 = 100 001.

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

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

В ЭВМ с трехадресными командами не указывается адрес следующей команды, а автоматически выполняется команда из следующей ячейки памяти (с номером, на единицу большим, который и является адресом следующей команды). Например, если принять для операции сложения код 01, то для сложения двух чисел из ячеек с номерами 2051 и 2052 с результатом, помещаемым в ячейку с номером 2345, в трехадресной машине команда будет выглядеть так:

01 2051 2052 2345 26

Первым усовершенствованием процесса программирования явилось введение символических адресов, позволившее составление команд и распределение памяти выполнять раздельно. Сущность этого приема заключается в разбиении оперативной памяти машины на массивы, число ячеек в которых заранее не известно, а номера ячеек массива задаются буквенно-числовыми обозначе­ниями типа ai + 1, ai + 2, . . ., называемыми символическими адресами. Распределение памяти осуществляется приписыванием всем ai числовых значений уже после составления программы. Последний процесс является чисто механическим и может быть автоматизирован, т.е. присвоение истинных адресов может быть поручено самой вычислительной машине.

Такое усовершенствование процесса программирования вскоре привело к созданию языков символического программирования, или автокодов. Такой язык отличается от машинного языка лишь тем, что вместо числовых значений, выражающих код операции команды и ее адреса, используются символические (буквенные) обозначения. Поэтому в первых автокодах существовало взаимно однозначное соответствие между операциями, записанными на языке символического программирования (или кодирования), и командами в машинном языке, на что указывал символ 1: 1, который записывался после наименования языка. Например, АВТОКОД 1:1 – АВТОматическое Кодирование один к одному.

Дальнейшее совершенствование автокодов выражалось в появлении дополнительных средств, устанавливающих по обычным правилам порядок действий в арифметических формулах или обеспечивающих в необходимых условиях разветвление вычислительного процесса, циклическое повторение участков программы и другие операции, вытекающие из условия задачи. Так, постепенно автокоды утратили приставку 1: 1, а их входные языки стали не чисто машинными, а машинно-ориентированными. Машинная ориентированность означает, что в основе этих языков продолжала лежать система команд какой-либо конкретной вычислительной машины. Первые машинно-ориентированные языки в целом были несовершенны. У одних языков описание после­довательности вычислений было оторвано от самих формул, другие имели сложную символику, мало наглядную или слишком специализированную, третьи были приспособлены лишь для решения ограниченного круга задач. Основной же недостаток заключался в привязанности языка к данной машине.

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

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

· средством мышления – логическое несовершенство предполагаемого метода решения задачи часто выявляется в процессе записи этого метода средствами алгоритмического языка;

· средством общения между людьми – описание процесса, выполненное одним человеком, должно быть доступно другим;

· посредником между человеком и машиной – при этом перевод с алгоритмического языка на язык машины выполняется самой машиной с помощью специальной программы – транслятора.

Одним из первых и наиболее удачных языков такого рода стал Фортран, разработанный фирмой IBM. В 1954 г. группа американских специалистов в области программирования опубли­ковала первое сообщение о языке Фортран. Название языка происходит от словосочетания FORmulae TRANslation – преобразование формул. Язык Фортран не только просуществовал до наших дней, но и уверенно удерживает первое место в мире по распространенности. Среди причин такого долголетия можно отметить простую структуру как самого Фортрана, так и предназначенных для него трансляторов. Программа на Фортране записывается в виде последовательности предло­жений, или операторов (под оператором понимается описание некоторого преобразования информации), и оформляется по определенным правилам. Эти правила накладывают ограничения, в частности, на форму записи и расположения частей оператора в строке бланка для записи операторов. Программа, записанная на Фортране, представляет собой один или несколько сегментов (подпрограмм) из операторов. Сегмент, управляющий работой всей программы в целом, называется основной программой.

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

Модификация языка Фортран, появившаяся в 1958 г., получила название Фортран II и содержала понятия подпрограммы и общих переменных для обеспечения связи между сегментами.

К 1962 г. относится появление языка, известного под названием Фортран IV и ставшего наиболее употребительным в настоящее время. К этому же времени относится и начало деятельно­сти комиссии при Американской Ассоциации Стандартов (ASA), которая выработала (к 1966 г.) два стандарта – языки Фортран и базисный (основной) Фортран (Basic FORTRAN). Эти языки приблизительно соответствуют модификациям IV и II, однако базисный Фортран является подмножеством Фортрана, в то время как Фортран II таковым для Фортрана IV не является.

Язык Фортран до сих пор продолжает развиваться и совершенствоваться, оказывая влияние на создание и развитие других языков. Например, Фортран заложен в основу диалогового языка Бейсик и его расширения Бейсик-плюс, широко распространенных языков во всех системах с режимом разделения времени, языков для обучения навыкам использования алгоритмических языков в практике программирования. Эти языки реализованы в частности на персональных компьютерах. В настоящее время создан новый стандарт – Фортран 77.

Вскоре после создания Фортрана (1957 г.) появился язык Алгол (ALGOritmic Language – алгоритмический язык), созданный на основе широкого международного сотрудничества. В 1960 г. было опубликовано официальное сообщение об алгоритмическом языке, названном Алгол-60, где число 60 означает год утверждения языка.

Алгол-60 создавался после разработки и практического применения Фортрана, поэтому харак­теризуется как введением новых конструкций, так и обобщением понятий, имеющихся в Фортране. Например, если в Фортране операторы с функциональной точки зрения подразделяются на исполняемые и неисполняемые, то в Алголе такого деления нет, а роль неисполняемых операторов Фортрана выполняют конструкции, называемые описаниями.

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

Алгол повсеместно признан как весьма удобное средство для публикации алгоритмов и для обучения основам программирования.

И Фортран, и Алгол-60 до недавнего времени по праву заслуживали название универсальных языков, так как обеспечивали программирование основной массы научно-технических задач (преимущественно вычислительных). Но ни один из этих языков, конечно, не позволял описать все без исключения возникающие задачи. Поэтому примерно в то же время появились алгоритмические языки с другой ориентацией, отвечающие нуждам тех новых направлений науки и техники, которые стали интенсивно развиваться в последующие годы.

Примером могут служить экономические задачи – задачи учета материальных ценностей, выпущенной продукции, личного состава, финансов и т.д. предприятия или отрасли. Для таких задач основными действиями являются операции ввода и вывода при относительно небольшом количестве несложных вычислений, а также последовательная обработка массивов данных. Описание действий такого рода может быть осуществлено на языке Кобол (COmmon Business Oriented Language), предложенном фирмой IBM в 1959 г.

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

Из языков для обработки символьной информации очень популярным, главным образом среди представителей физико-математических наук, является язык Лисп, созданный группой исследователей в 1960 г. в Массачусетсском технологическом институте. В этом языке вся находя­щаяся в обработке информация, в том числе и сама программа, организуется в так называемые списки – последовательности элементов. Элемент может быть первичным (буквенным обозначением или числом) или в свою очередь списком. Так могут возникать сколь угодно сложные структуры.

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

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

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

Обилие алгоритмических языков, появившихся в период второго поколения ЭВМ, с одной стороны, во многом объясняется модой, с другой стороны – невозможностью ни одним из предло­женных языков удобно описывать все возникавшие задачи. Третье поколение ЭВМ поставило на повестку дня выработку нового подхода к созданию действительно универсального алгоритмического языка.

Одной из попыток такого рода является создание фирмой IBM алгоритмического языка ПЛ/1 (Programming Language/1 – язык программирования один). Он основан на языках Фортран и Кобол, ряд изобразительных средств и понятий взят из Алгола и других языков, в частности языков для обработки символьной информации. Затем последовательно было опубликовано несколько версий языка, которые сильно отличались друг от друга, но постепенно язык стабили­зировался, и теперь новые публикации отличаются от предыдущих лишь редакционными поправками, устранением неточностей или усовершенствованием отдельных элементов.

Основными элементами программы, написанной на языке ПЛ/1, являются операторы, с помощью которых описываются как данные, так и операции их обработки. По аналогии с Фортраном исходная программа представляет собой совокупность основной программы и подпрограмм, имеющих форму блока. Понятие блока в ПЛ/l базируется на концепциях блока в языке Алгол-60. Таким образом, этот язык построен в целом на базе понятий существующих алгоритмических языков и в их традициях.

Другая попытка связана с дальнейшим развитием Алгола. В 1968 г. опубликован документ с изложением основ нового универсального алгоритмического языка, получившего название Алгол-68. В этом языке число основных понятий сведено к разумному минимуму с целью добиться высокой изобразительной силы языка, обеспечив свободу сочетания и взаимодействия этих понятий между собой.

Язык Алгол-68 традиционен, поскольку проявляется стремление обеспечить всех пользователей готовыми средствами для описания их алгоритмов. До сих пор этот подход не мог предотвратить появления все новых специализированных языков. Так, в 1971 г. был опубликован алгоритмический язык Паскаль, названный в честь великого французского ученого XVII века, сумевшего первым в мире изобрести автоматическое устройство, позволяющее складывать числа. Язык Паскаль является преемником Алгола-60, он имеет конструкции, аналогичные существующим в ПЛ/l и Алголе-68, однако Паскаль более лаконичен. Язык Паскаль почти так же прост, как и Бейсик, однако Паскаль способствует внедрению современной технологии программирования, основанной на постепенном построении программы, состоящей из небольших четко определенных процедур, т.е. последовательно проводятся в жизнь идеи структурного программирования. Другой существенной особенностью Паскаля является концепция структуры данных как одного из фундаментальных понятий, лежащих, наряду с понятием алгоритма, в основе программирования.

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

В отличие от перечисленных языков высокого уровня, появившихся в начале 80-х годов, язык программирования Си является языком сравнительно низкого уровня. Но это не значит, что этот язык недостаточно мощный. Язык Си – универсальный язык, тесно связанный с популярной операционной системой UNIX (на языке Си написаны и система UNIX и ее программное обеспечение). Алгоритмический язык Си достаточно полно отражает возможности современных компьютеров, позволяя писать весьма эффективные программы, не прибегая к языкам Ассемблера, главным образом за счет простых, последовательных конструкций потоков управления. Предлагаются проверки, циклы, группирование и подпрограммы, но не мультипрограммирование, параллельные операции, синхронизация и сопрограммы – непременные атрибуты мощных языков (Ада, ПЛ/1, Алгол-68).

В последнее время проявляется тенденция к созданию так называемых расширяемых универ­сальных языков. Основная идея такого направления – не избегать специализированных языков-диалектов, а создать общую основу «программистских диалектов».

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

Лекция 11. Языки программирования. Системы программирования. Среды визуального проектирования

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

Управляющие команды и данные, поступающие в процессор по его шинам, представляются в виде машинного кода.

Машинный код - это двоичный код, т. е. совокупность нулей и единиц в виде электрических сигналов.

Управление компьютером производится по определенному алгоритму.

Алгоритм - это точно определенное описание способа решения задачи в виде конечной по времени последовательности действий (элементарных операций или операторов). Такое описание называется формальным.

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

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

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

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

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

Различают два вида программ-трансляторов:

  • интерпретатор, который одновременно и транслирует и выполняет заданную команду, делая это покомандно или пооператорно;
  • компилятор, который преобразует программу, составленную на языке высокого уровня, в программу на машинном языке или на языке, близком к машинному, не участвуя в её выполнении.

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

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

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

На практике применяется как тот, так и другой вид программ-трансляторов, т. е. и программы-интерпретаторы, и программы-компиляторы.

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

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

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

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

Рождение языков высокого уровня 5-го поколения произошло в середине 90-х годов.

Fortran - первый компилируемый язык, созданный в 50-е годы, но модификации 2000 года ( HPF — High Perfomance Fortran ) используются и сейчас в статистических комплексах и даже в системах управления спутниками.

Cobol — это компилируемый язык для применения в экономике и решения бизнес-задач, разработанный в начале 60-х годов. Имеет много приложений, используется и сейчас (в США наибольшую зарплату получают программисты, работающие на Cobol ).

Algol - компилируемый язык, созданный в 1960 году. Предполагалось, что он заменит Fortran , но из-за более сложной структуры не получил широкого распространения.

Pascal - создан в конце 70-х годов, во многом напоминает Algol , но в нем ужесточен ряд требований к структуре программ, что позволяет успешно применять его при создании крупных проектов.

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

С (Си) - планировался для замены ассемблера, чтобы иметь возможность создавать эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора. На этом языке написано в 70е годы множество системных и прикладных программ и ряд операционных систем (в частности, ОС Unix ).

C++ (Си++) - это объектно-ориентированное расширение языка Си, разработанное в 1980 году. Обеспечивает высокую производительность, но требует от разработчиков высокого уровня профессионализма.

Java - этот язык создан в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него низкоуровневых возможностей. Обеспечивает компиляцию не в машинный код, а в платформенно-независимый объектный код, который может выполняться с помощью интерпретатора - виртуальной Java-машины ( Virtual Machine ), версии которой созданы сегодня для любых платформ.

Этот язык занимает по популярности второе место после Basic . Основной его недостаток - невысокое быстродействие, т. к. он интерпретируемый .

Языки программирования баз данных (БД)

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

Для управления большими БД и эффективной обработки данных разработаны системы управления базами данных (СУБД). Для обработки данных в базах данных был создан структурированный язык запросов SQL (Structured Query Language ).

Практически в каждой СУБД помимо поддержки языка SQL имеется также свой уникальный язык, ориентированный на особенности только этой СУБД.

В настоящее время насчитывается несколько ведущих производителей СУБД. Среди них такие, как:

Microsoft Access ;

Oracle ;

Informix и т. п.

СУБД этих фирм ориентированы на работу одновременной работы в сети тысяч пользователей, а БД могут храниться в распределённом виде на нескольких серверах.

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

Все эти языки интерпретируемые, интерпретаторы для них распространяются бесплатно, а сами программы - в исходных текстах (скриптах). Такие языки называют скрипт-языками.

  • Наиболее известные из скрипт-языков:
  • HTML , XML - общеизвестные языки разметки гипертекста, предназначенные для описания структуры и содержания WEB -документов;
  • JavaScript – язык программирования сценариев или скриптов (планов работы программ по взаимодействию с пользователем), встроенных в тело WEB -страницы;
  • Perl – язык программирования, используемый для создания сценариев и динамически генерируемых Web-страниц, превосходящий по мощности языки типа Си.

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

Для создания программы на выбранном языке нужно иметь компоненты:

Текстовый редактор (лучше использовать специализированный, ориентированный на конкретный язык программирования и позволяют выделять ключевые слова и идентификаторы разными цветами и шрифтами);

  • программу-компилятор, с помощью которой текст может быть переведен непосредственно в машинный код, но так как в программе часто не хватает некоторых компонентов, компилятор может выдавать промежуточный объектный код с расширением. obj ;
  • библиотеки функций. Каждый модуль компилируется в отдельный файл с объектным кодом, но, кроме того, к ним может быть добавлен машинный код подпрограмм, реализующих стандартные математические функции (например, sin , In ), которые поставляются с компилятором. Эти подпрограммы находятся в библиотеках функций (файлах с расширением. lib );
  • редактор связей. Объектный код модуля обрабатывается специальной программой-редактором связей или сборщиком (компоновщиком), который связывает объектный код и машинный код стандартных функций и формирует на выходе работоспособное приложение, т. е. исполнимый код для конкретной системной платформы;
  • исполнимый код - это законченная программа, которую можно запустить на любом PC с той ОС, для которой эта программа создавалась. Она имеет расширения: .ехе или. com .

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

Среды визуального проектирования

В настоящее время в программировании совершенствуется визуальный подход. Раньше серьезным препятствием для разработки графических приложений была сложность создания различных визуальных элементов приложения и их контроль. Например, для программы сложения 2-х чисел требуется всего один оператор или одна строка исходного текста, а для создания кнопки и двух полей ввода чисел (подготовки к работе в - Windows ) — сотни строк кода.

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

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

В настоящее время наиболее популярны следующие среды визуального программирования для языков:

Basic: Microsoft Visual Basic;

Pascal: Borland Delphi;

C++: Borland C++ Builder;

Java: Symantec Cafe.

Microsoft Visual Basic

Язык BASIC (Beginner " s All Purpose Symbolic Instruction Code ) был модифицирован в GWBASIC (Graphics Workshop ), который был доступен для первых PC .

В конце 80-х годов разработан QuickBasic , который в 1992 году заменил Visual Basic for Windows .

В середине 1998 года разработана шестая, наиболее зрелая версия Microsoft Visual Basic (MS VB 6), которая долгое время была основной учебной версией.

Данная версия являлась основной средой разработки приложений под Windows от Microsoft, до появления принципиально новой платформы. NET Framework .

После этого фирма Microsoft резко изменила политику в отношении языков семейства Basic. Вместо развития Visual Basic, был создан абсолютно новый язык Visual Basic.NET , первая версия которого появилась в 2001 г. Это принципиально новый язык, имеющий, помимо синтаксиса , очень мало схожего с VB 6.0, и достаточно сильно отличающийся от него.

VB.NET сразу же занял прочное место VB в языковом комплексе Visual Studio, и на этом развитие классического языка Visual Basic остановилось.

В 2005 году вышла новая версия Visual Basic 2005, в комплекте Visual Studio . Она имела новый интерфейс и большие возможности. Язык был основан на Visual Basic.NET.

В конце 2007 фирма Microsoft выпустила новую версию Visual Basic — Visual Basic 2008, которая также была основана на Visual Basic.NET.

В 2010 году в составе Visual Studio 2010 была выпущена версия Visual Basic 2010 и её несколько упрощённый вариант Visual Basic 2010 Express , который ориентирован на широкое использование и предлагается бесплатно.

Вычислительной средой для визуального языка программирования Visual Basic 2010 является платформа Microsoft .NET Framework 4.0 (Microsoft dot NET Framework 4.0), являющаяся неотъемлемым компонентом Windows.

В настоящее время версия Visual Basic 2010 является основной, от поддержки и сопровождения всех предыдущих разработок Visual Basic фирма Microsoft отказалась.

Чтобы избежать изучения нового языка для каждого из продуктов Microsoft начала включать элементы BASIC в макроязыки продуктов.

В результате была создана версия языка Visual Basic , названная Visual Basic for Applications (VBA ), которая реализуется во всех приложениях MSO 2003 и M SO 2007 (Word , Excel , PowerPoint и др.), в частности, для создания макросов.

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

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

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

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

    трансляторы с языков высокого уровня;

    средства редактирования, компоновки и загрузки программ;

    макроассемблеры (машинно-ориентированные языки);

    отладчики машинных программ.

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

    текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;

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

    запускатель программ (Run), осуществляющий процесс выполнения программы;

    компилятор (Compile), предназначенный для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и семантических (логических) ошибок;

    отладчик (Debug), выполняющий сервисные функции по отладке и тестированию программы;

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

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

Широкое распространение среди разработчиков программ, а также при обучении программированию, получили системы программирования «Турбо» (Turbo) фирмы Borland, ядром которых являются трансляторы с языков программирования Бейсик, Паскаль, Си, Пролог и др. Интерфейс Турбо-оболочки для любых систем программирования внешне совершенно одинаков и предоставляет пользователю стандартный набор функций и команд.

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

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

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

Существующие языки программирования можно разделить на две группы: процедурные и непроцедурные (см. рис. 1).

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

Процедурные языки разделяют на языки низкого и высокого уровня.

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

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

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

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

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

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

Работа всех трансляторов строится по одному из двух принципов: интерпретация или компиляция.

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

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

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

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

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

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

Рис. 1. Общая классификация языков программирования

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

Принципиально иное направление в программировании связано с методологиями (иногда говорят «парадигмами») непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование. Объектно-ориентированный язык создает окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования. Из языков объектного программирования, популярных среди профессионалов, следует назвать прежде всего Си++, для более широкого круга программистов предпочтительны среды типа Delphi и Visual Basic

При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом процедуру его получения («алгоритм») программист не строит (по крайней мере, в идеале). В этих языках отсутствует понятие «оператор» («команда»). Декларативные языки можно подразделить на два семейства - логические (типичный представитель - Пролог) и функциональные (Лисп).

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

    Фортран (FORmula TRANslating system - система трансляции формул); старейший и по сей день активно используемый в решении задач математической ориентации язык. Является классическим языком для программирования на ЭВМ математических и инженерных задач

    Бейсик (Beginner"s All-purpose Symbolic Instruction Code – универсальный символический код инструкций для начинающих); несмотря на многие недостатки и изобилие плохо совместимых версий - самый популярный по числу пользователей. Широко употребляется при написании простых программ.

    Алгол (ALGOrithmic Language - алгоритмический язык); сыграл большую роль в теории, но для практического программирования сейчас почти не используется.

    ПЛ/1 (PL/1 Programming Language - язык программирования первый); многоцелевой язык; сейчас почти не используется.

    Паскаль (Pascal - назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. Создан в начале 70-х годов швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах. Однако, качества его в совокупности оказались столь высоки, что им охотно пользуются и профессиональные программисты. Не менее впечатляющей, в том числе и финансовой, удачи добился Филип Кан, француз, разработавший систему Турбо-Паскаль. Суть его идеи состояла в объединении последовательных этапов обработки программы - компиляции, редактирования связей, отладки и диагностики ошибок - в едином интерфейсе. Версии Турбо-Паскаля заполонили практически все образовательные учреждения, программистские центры и частные фирмы. На базе языка Паскаль созданы несколько более мощных языков (Модула, Ада, Дельфи).

    Кобол (COmmon Business Oriented Language - язык, ориентированный на общий бизнес); в значительной мере вышел из употребления. Был задуман как основной язык для массовой обработки данных в сферах управления и бизнеса.

    АДА ;является языком, победившим (май 1979 г.) в конкурсе по разработке универсального языка, проводимым Пентагоном с 1975 г. Разработчики - группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА - прямой наследник языка Паскаль. Этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, управления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков.

    Си (С - «си»); широко используется при создании системного программного обеспечения. Наложил большой отпечаток на современное программирование (первая версия - 1972 г.), является очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль.

    Си++ (С++);объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость.

    Дельфи (Delphi); язык объектно-ориентированного «визуального» программирования; в данный момент чрезвычайно популярен. Созданный на базе языка Паскаль специалистами фирмыBorlandязыкDelphi, обладая мощностью и гибкостью языков Си и Си++, превосходит их по удобству и простоте интерфейса при разработке приложений, обеспечивающих взаимодействие с базами данных и поддержку различного рода работ в рамках корпоративных сетей и сети Интернет.

    Ява (Java); платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц. Этот язык был создан компаниейSunв начале 90-х годов на основе СИ++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей.

    Лисп (Lisp) - функциональныйязык программирования. Ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации.

    Пролог (PROgramming in LOGic – логическое программирование). Главное назначение языка - разработка интеллектуальных программ и систем. Пролог - это язык программирования, созданный специально для работы с базами знаний, основанными на фактах и правилах (одного из элементов систем искусственного интеллекта). В языке реализован механизм возврата для выполнения обратной цепочки рассуждений, при котором предполагается, что некоторые выводы или заключения истинны, а затем эти предположения проверяются в базе знаний, содержащей факты и правила логического вывода. Если предположение не подтверждается, выполняется возврат и выдвигается новое предположение. В основу языка положена математическая модель теории исчисления предикатов.

Языки программирования для Интернета:

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

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

    Tcl / Tk . Этот язык ориентирован на автоматизацию рутинных процессов и состоит из мощных команд. Он независим от системы и при этом позволяет создавать программы с графическим интерфейсом.

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

Из универсальных языков программирования сегодня наиболее популярны:

    Бейсик – для освоения требует начальной подготовки;

    Паскаль – требует специальной подготовки;

    Си++, Ява – требуют проффесиональной подготовки.

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

      Basic: Microsoft Visual Basic

      Pascal: Borland Delphi

      C++: Borland C++Bulider

      Java: Symantec Cafe

Для разработки серверных и распределенных приложений можно использовать систему программирования MicrosoftVisualC++, продукты фирмыInpriseпод маркойBorland. Практически любые средства программирования наJava.

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

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

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

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

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

(05.12.2012 г.)

Они (алгоритм.яз.) обладают рядом свойств:

1. Специализация – средство, предоставленное языком, ориентированным на описание задач предметных областей определенного типа. Например : одни языки предназначены в основном для численных расчетов (Паскаль), другие для работы с текстовой информацией (LISP), третьи для написания системных программ (С). В основном наиболее распространенные языки позволяют описать решение разнообразных задач (поэтому называются универсальными), но наиболее удобны для решения тех задач, для которых они разработаны.

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

В связи с особенностями языков программирования существуют четыре важных этапа запуска программы на выполнение :

1. Трансляция – перевод текста программных модулей с алгоритмического языка на машинный.

2. Сборка полученных после трансляции программных модулей в единую программу.

3. Отладка программы – процесс нахождения и устранения ошибок в тексте программы.

4. Исполнение программы.

Для обеспечения этих этапов и предназначены системы программирования.

Они включают в себя следующие компоненты:

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

2. Трансляторы. Транслятор – это переводчик с языка, на котором написаны тексты программных модулей, на машинный внутренний язык. Два вида трансляторов:

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

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


4. Отладчик. Отладчик оказывает помощь в поиске различных ошибок в программе в процессе её выполнения. К таким, например, относятся : логические ошибки (попытка деления на ноль), а также ошибки, связанные с некорректностью входных данных.



Загрузка...