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

Содержание:

1) Введение стр. 1

2) Что такое язык программирования стр. 2

3) Для чего нужны языки программирования стр. 3

4) Какие существуют языки программирования стр. 4 – 7

5) Что такое компилятор и интерпретатор стр. 8

6) Список использованной литературы стр. 9

Введение

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

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

Однако в течение 60-х цена на компьютеры стала падать так, что даже небольшие компании могли их себе позволить; скорость компьютеров всё увеличивалась и наступило время, когда они стали часто простаивать без задач. Чтобы этого не происходило, стали вводить системы с разделением времени (time-sharing).

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

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

Что такое язык программирования

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

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

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

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

Для чего нужны языки программирования

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

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

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

К языкам низкого уровня относятся языки ассемблера (от англ. toassemble – собирать, компоновать). В языке ассемблера используются символьные обозначения команд, которые легко понятны и быстро запоминаются. Вместо последовательности двоичных кодов команд записываются их символьные обозначения, а вместо двоичных адресов данных, используемых при выполнении команды, — символьные имена этих данных, выбранные программистом. Иногда язык ассемблера называют мнемокодом или автокодом.

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

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

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

Какие существуют языки программирования

Фортран

Языки программирования стали появляться уже с середины 50-х годов. Одним из первых языков такого типа стал язык Фортран (англ. FORTRAN от FORmulaTRANslator – переводчик формул), разработанный в 1957 году. Фортран применяется для описания алгоритма решения научно-технических задач с помощью ЦВМ. Так же, как и первые вычислительные машины, этот язык предназначался, в основном, для проведения естественно-научных и математических расчётов. В усовершенствованном виде этот язык сохранился до нашего времени. Среди современных языков высокого уровня он является одним из наиболее используемых при проведении научных исследований. Наиболее распространены варианты Фортран-II, Фортран-IV, EASICFortran и их обобщения.

Алгол

После Фортрана в 1958-1960 годах появился язык Алгол (Алгол-58, Алгол-60) (англ. ALGOL от ALGOrithmicLanguage – алгоритмический язык).Алгол был усовершенствован в 1964-1968 годах – Алгол-68.Алгол был разработан комитетом, в который входили европейские и американские учёные.Он относится к языкам высокого уровня (high-level language) и позволяет легко переводить алгебраические формулы в программные команды. Алгол был популярен в Европе, в том числе СССР, в то время как сравнимый с ним Фортран был распространен в США и Канаде. Алгол оказал заметное влияние на все разработанные позднее языки программирования, и, в частности, на язык Pascal. Этот язык так же, как и Фортран, предназначался для решения научно-технических задач. Кроме того, этот язык применялся как средство обучения основам программирования – искусства составления программ.

Обычно под понятием Алгол подразумевается язык Алгол-60 , в то время как Алгол-68 рассматривается как самостоятельный язык. Даже когда язык Алгол почти перестал использоваться для программирования, он ещё оставался официальным языком для публикации алгоритмов.

Кобол

В 1959 – 1960 годах был разработан язык Кобол (англ. COBOL от COmmom Business Oriented Language – общий язык, ориентированный на бизнес). Это язык программирования третьего поколения, предназначенный, в первую очередь, для разработки бизнес приложений.Также Кобол предназначался для решения экономических задач, обработки данных для банков, страховых компаний и других учреждений подобного рода. Разработчиком первого единого стандарта Кобола являлась Грейс Хоппер (бабушкаКобола ).

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


.

Что такое языки программирования

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

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

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

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

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

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

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

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

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

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

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

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

Иногда рассматривают три уровня языков  программирования:

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

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

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

Уровень языка характеризуется степенью его близости к обычной человеческой речи. Машинный язык радикально от нее отличается.

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

Транслятор — это программа, предназначенная для автоматического перевода описания алгоритма решения задачи с одного формального языка на другой. Причем исходным языком является язык высокого уровня, а конечным – машинный язык (машинный код).

Если трансляция сопровождается выполнением каждой команды после ее перевода в машинный код, то такой транслятор называют интерпретатором.

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

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

Языки программирования, приспособленные для каких-то специфических задач, называют специальными.
Например, для решения инженерных задач раньше часто использовали ФОРТРАН (FORTRAN), программы для выполнения в сети Интернет пишут, например, на языках PHP, Perl, JavaScript и др.

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

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

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

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

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

Языки высокого уровня начали использоваться для создания программ в 60-х годах. К настоящему времени создано и используется множество языков программирования. Их можно классифицировать по четырём основным группам: процедурные, объектно-ориентированные, функциональные и логические.

Процедурные языки (С, BASIC, FORTRAN, PASCAL и др.)

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

Объектно-ориентированные языки (С++, Java,Visual Basic)

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

Функциональные языки

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

Логические языки (ЛИСП, ПРОЛОГ)

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

Большинство используемых сегодня языков программирования, были созданы на рубеже 60-х и 70-х годов. При этом новые языки не переставали регулярно появляться, однако ни один из них (кроме Java) не задержался в практике программирования.

По существу прекращены попытки создания “универсального” языка программирования, призванного объединить в себе все последние достижения в области разработки языков (из попыток 60-х – 70-х годов можно вспомнить Алгол, PL/1, Аду). Крупные "языковые” проекты безвозвратно ушли в прошлое вместе с порожденными ими языками.

Наконец, появление персонального компьютера и ОС с графическим интерфейсом (прежде всего Mac OS и Windows) переместило внимание разработчиков программного обеспечения из сферы языков программирования в другие области средств разработки ПО, такие, как визуальное или объектно-ориентированное программирование или модели баз данных. Программист все чаще использует в качестве инструмента не столько язык, сколько конкретную систему программирования (например, Delphi), а какой язык является для нее базовым, не так уж важно.

Трансляторы

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

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

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

Транслятор – программа, преобразующая операторы исходного программного модуля в машинный код.

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

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

Объектный модуль – преобразованный в машинный код исходный программный модуль.

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

Исполняемый модуль – это объектный модуль с подключенными библиотечными программами.

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

Что такое язык программирования (стр. 1 из 3)

В результате интерпретируемая программы исполняется значительно медленнее в сравнении с исполняемым модулем.

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

Все языки программирования можно условно разделить на компилируемые и интерпретируемые. Поскольку откомпилированные программы выполняются в 20-50 раз быстрее, практически все прикладные и служебные программы поставляются в откомпилированном виде. Файлы таких программ имеют расширение .EXE или .COM.

Некоторые интерпретируемые языки программирования могут иметь также и компиляторы.

Интерпретируемые языки проще в изучении.

Лекция 15


Читайте также:

Компьютерная программа представляет собой логически упорядоченную последовательность команд, предназначен­ных для управления компьютером. Процессор компьютера — это большая интегральная схема. Все данные и команды он получает в виде электрических сигналов. В двоичном коде наличие сигнала описывается понятием «1», а его отсутствие — понятием «О». Команды, обрабатываемые процессором, можно интерпретировать как ряд чередующихся определенным образом единиц и нулей, то есть любая команда преобразуется в двоичное число. Таким образом, процессор исполняет программы, представляющие собой последовательность чисел и называемые машинным кодом.

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

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

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

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

Сегодня практически все программы создаются с помощью язы­ков программирования. Теоретически программу можно написать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически пере­вести такую программу в машинный код пока невозможно.

Языки программированияэто формальные искусственные язы­ки. Как и естественные языки, они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику.

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

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

Грамматика — это конечная система правил, определяющих язык.

Грамматика определяет способы построения изменения и сочетания слов.

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

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

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

Языки программирования, ориентированные на команды процессора и учитывающие его особенности, называют языками низкого уровня. «Низкий уровень» не означает неразвитый, имеется в виду, что операторы этого языка близки к машинному коду и ориентиро­ваны на конкретные команды процессора.

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

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

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

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

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

Существуют два типа программ-трансляторов: компилятор и ин­терпретатор.

Компилятор работает сразу со всем исходным модулем, форми­руя на его основе загрузочный модуль, т.

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

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

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

• нисходящее программирование;

• модульное программирование;

• структурное программирование;

• структурный контроль.

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

Иерархическая модель строится по следующим правилам:

— каждый модуль может быть связан только с одним модулем верхнего уровня и с несколькими модулями нижнего уровня;

— для каждого модуля нижнего уровня имеется выход в модуль верхнего уровня;

— связи между модулями организуются сверху вниз;

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

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

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

Модульное программирование позволяет существенно сокра­тить время, необходимое на отладку программ.

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

— любая программа составляется на базе основных алгоритми­ческих структур трех видов: линейного, разветвляющегося, цикли­ческого;

— между этими структурами производится передача управления только вперед — от более высокого уровня иерархии к более низкому;

— запрещается использовать команду переходов «GOTO». Структурное программирование используется в основном для программирования отдельных модулей.

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

Свойства языков программирования:

Понятность

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

Надежность

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

Гибкость

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

Простота

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

Естественность

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

Мобильность

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

Это позволяет распределить высокую стоимость программного обеспечения на ряд платформ.

Стоимость

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

• стоимость обучения языку;

• стоимость создания программы;

• стоимость трансляции программы;

• стоимость выполнения программы;

• стоимость сопровождения программы.

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

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

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

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

— более обоснованно выбрать язык программирования для реализации конкретного проекта;

— разрабатывать более эффективные алгоритмы;

— систематически пополнять набор полезных языковых конструкций;

— ускорить изучение новых языков программирования;

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

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

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

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

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

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

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

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

Большинство производственных задач решают с помощью программ, написанных на процедурно — ориентированных языках. Средства этих языков позволяют наиболее просто описать часто встречающиеся фрагменты действий в соответствующих задачах. Процедурно-ориентированные языки предполагают знания пользователя в области математических (численных) методов и основ алгоритмизации (базовый язык для научно-технических расчетов ФОРТРАН, БЕЙСИК (персональные ЭВМ — основной), современный ПАСКАЛЬ).

В процессе развития созданы многоцелевые (универсальные) языки программирования, объединяющие основные средства и возможности многих процедурно — ориентированных языков, например: ПЛ/1 -используемый для решения задач обработки экономической и научно-технической информации, задач управления объектами и т.п.; язык АДА — многоцелевой стандартный язык, способный заменить множество других языков и на длительный период обеспечить разработку и совершенствования программ обеспечения; язык МОДУЛА — объединяет средства и особенности . машинно-ориентированных и процедурно — ориентированных языков; включает средства для написания подпрограмм управления устройствами, управления потоками сообщений, для чего традиционно использовались языки ассемблерного типа.

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

Граница между проблемно — и процедурно — ориентированными языками очерчена не очень четко (условно) — ЛИСП, ПРОЛОГ.


⇐ Предыдущая35363738394041424344Следующая ⇒


Дата публикования: 2014-11-04; Прочитано: 2594 | Нарушение авторского права страницы



studopedia.org — Студопедия.Орг — 2014-2018 год.(0.008 с)…

Сферы применения языков программирования

PHP

  • Сферы применения: Веб-разработка
  • Сложность входа: легко
  • Почему его стоит учить:
    • Легко найти работу практически в любом городе.
    • Обычно компании, использующие, php чаще берут людей без опыта.
    • Большинство сайтов использует php.
    • Огромное количество библиотек на все случаи жизни.
Python

  • Сферы применения: веб-разработка, геймдев, CLI, десктопные приложения, анализ данных.
  • Сложность входа: легко
  • Почему его стоит учить:
    • Считается одним из самых подходящих языков для старта в программировании.
    • Широкая сфера применения, каждый найдет себе что-нибудь по вкусу.
JavaScript

  • Сферы применения: геймдев, веб-разработка, CLI, десктопные приложения.
  • Сложность входа: легко (только в самом начале)
  • Почему его стоит учить:
    • Как второй язык присутствует практически везде, где есть визуальная клиентская часть.
Java

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

  • Сферы применения: веб-разработка, CLI.
  • Сложность входа: легко (только в самом начале)
  • Почему его стоит учить:
    • Только на Ruby есть Rails
    • Экосистема Ruby — пример для подражания, скопированный многими платформами.
    • Концентрация сообщества вокруг одного фреймворка, дает на выходе огромное количество решений (интегрированных друг с другом) для всех задач в вебе.
Clojure

  • Сферы применения: веб-разработка, анализ данных.
  • Сложность входа: средне
  • Почему его стоит учить:
    • Дает сильный толчок в профессиональном развитии.
    • Современный язык с отличным дизайном.
    • jvm-based язык, что означает доступ ко всему Java-коду.
Erlang

  • Сферы применения: геймдев, системы массового обслуживания.
  • Сложность входа: легко (но непривычно)
  • Почему его стоит учить:
    • Язык с уникальным дизайном (actor model).
    • Позволяет писать параллельный код даже не задумываясь об этом.
    • Очень просто создавать системы, работающие одновременно с сотнями тысяч и миллионами пользователей.
Objective-C

  • Сферы применения: мобильная разработка (iOS), основной язык для разработки под Mac OS X
  • Сложность входа: средне
  • Почему его стоит учить:
    • Мобильная разработка — перспективное направление.
Go

  • Сферы применения: сетевые сервисы, API, CLI.
  • Сложность входа: легко
  • Почему его стоит учить:
    • Простой язык с минимумом магии
    • Простые, но мощные примитивы для написания паралелльного кода
Scala

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

C

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

C++

Haskell

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

C#

  • Сложность входа: средне
  • Почему его стоит учить:
    • Потому что вам нравится Microsoft.

Kotlin

Ocaml

Swift


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *