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

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

ВНИМАНИЕ! Работа на этой странице представлена для Вашего ознакомления в текстовом (сокращенном) виде. Для того, чтобы получить полностью оформленную работу в формате Word, со всеми сносками, таблицами, рисунками (вместо pic), графиками, приложениями, списком литературы и т.д., необходимо скачать работу.

Содержание

Введение 3
1. Классификация языков программирования 4
2. Виды современных языков 7
3. Основные элементы алгоритмического языка 9
Заключение 12
Список литературы 13
Приложения 14

Введение

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

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

Языки программирования, или алгоритмические языки, классифицируются: по степени их зависимости от вычислительной машины; по ориентации на сферу применения; по специфике организационной структуры языковых конструкций и т.п. С учетом зависимости от ЭВМ языки программирования подразделяются на: машинно-зависимые и машинно-независимые.
К машинно-зависимым языкам в первую очередь относятся машинные языки. Отдельный компьютер имеет свой определенный внутренний машинный язык, который представляет собой систему инструкций и данных, не требующих трансляции, умеющих непосредственно интерпретироваться и исполняться аппаратными средствами ЭВМ, поэтому машинный язык является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый машинный язык. В новых моделях ЭВМ намечается тенденция к повышению внутренних языков машинно-аппаратным путем реализовывать более сложные команды.
К машинно-зависимым языкам программирования также относятся машинно-ориентированные языки. Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства, которые существенно зависят от особенностей архитектуры и принципов работы определенной ЭВМ (внутреннего языка, структуры памяти и т.д.). Эти языки позволяют использовать все возможности машинно-зависимых языков, но в отличие от последних требуют предварительной трансляции на машинный язык программ, составленных с их помощью. Машинно-ориентированные языки имеют ряд особенностей:
 высокое качество создаваемых программ (компактность и скорость);
 возможность использования конкретных аппаратных ресурсов;
 для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
 трудоемкость процесса составления программ, плохо защищенного от появления ошибок;
 низкая скорость программирования;
 невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.
Машинно-ориентированные языки по степени автоматического программирования подразделяются на: языки символического кодирования, автокоды, макросы.
Языки символического кодирования (ЯСК), так же, как и машинные языки, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных или восьмеричных цифр, в языках символического кодирования заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ.
Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются автокоды.
В различных программах встречаются достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту.
Развитые автокоды получили название Ассемблеры. Сервисные программы и прочее, как правило, составлены на языках типа Ассемблер.
Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму – называется макрос (средство замены).
В основном, макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макроопределяющий и исходный текст. Реакцией макропроцессора на вызов является выдача выходного текста.
Тот факт, что машинно-зависимые языки учитывают специфику организации принципы работы определенной ЭВМ и допускают при программировании указание конкретных режимов работы физических средств ЭВМ, распределение памяти, явное определение внешних устройств и т.п., относит их к языкам "низкого уровня". Также их называют языками 1:1, т.е. одному оператору входного языка программирования соответствует один оператор машинного языка.
Машинно-независимые языки – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ.
Подобные языки получили название высокоуровневых языков программирования. Программы, составляемые на таких языках, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка (задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на машинный язык.
Таким образом, командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма.
Среди машинно-независимых языков выделяют: проблемно-ориентированные, универсальные, диалоговые и непроцедурные языки.
С расширением сфер применения вычислительной техники возникла необходимость создания таких языков программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач, ими стали проблемно-ориентированные языки. Эти языки, ориентированные на решение определенных проблем, позволяют программистам коротко и четко формулировать задачу и получать результаты в требуемой форме.
Проблемных языков очень много, например:
 Фортран, Алгол – языки, созданные для решения математических задач;
 Симула, Слэнг - для моделирования;
 Лисп, Снобол – для работы со списочными структурами.
Для широкого круга задач (коммерческих, научных, моделирования и т.д.) были созданы универсальные языки (процедурно-ориентированные). Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ.
Появление новых возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками.
Эти работы велись в двух направлениях. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач.
Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе.
Одним из примеров диалоговых языков является Бэйсик. Он использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг задач.
Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами.
Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения.
В последнее время отмечается бурный рост объектно-ориентированных языков программирования, т.е. языков, ориентированных на разработку программных приложений для широкого круга разнообразных по сфере приложения задач, имеющих общность в реализуемых компонентах (например, при взаимодействии с базами данных или с глобальной сетью Интернет). Объектно-ориентированный подход в программировании позволяет применять одни и те же (типовые) архитектурные и концептуальные решения для быстрого создания эффективных программных приложений.

2. Виды современных языков

Выбор типа языка зависит от многих факторов: назначения, удобства написания исходных программ, эффективности получаемых объектных программ и т.п. Многообразие языков программирования не позволит мне описать их все в данной курсовой работе, поэтому я остановлюсь на самых основных и часто используемых.
"Максимальная скорость выполнения при минимальных размерах программы" - девиз программистов, пишущих на ассемблере.
Однако ассемблер имеет одну особенность, которая отпугивает многих начинающих программистов, - ассемблер является машинно-ориентированным языком. Это означает, что пишущий на ассемблере работает непосредственно с ресурсами компьютера, что требует хорошего знания его архитектуры, логики работы операционной системы, а также большой аккуратности при написании программы.
Ассемблер предоставляет программисту полную свободу действий при разработке программы, что одновременно является и его достоинством, и недостатком, так как требует от разработчика знания системы команд данного компьютера и его операционной системы. Кроме того, несмотря на минимальный размер выполняемого файла при максимальной скорости работы, время, необходимое для создания программы, резко возрастает с увеличением объёма разрабатываемого проекта. Поэтому ассемблер был и остаётся языком программирования для профессионалов.
Сегодня наиболее распространенными алгоритмическими языками являются Паскаль и Си. Эти языки используются практически на всех действующих вычислительных системах - от супер-ЭВМ до персональных компьютеров.
Первая версия языка Паскаль была разработана швейцарским ученым Никлаусом Виртом в 1968 году. Первоначально язык предназначался для целей обучения, поскольку он является достаточно детерминированным, т.е. все подчиняется определенным правилам, исключений из которых не так много. Основные его характеристики: небольшой набор базовых понятий, простой синтаксис, быстрый компилятор для перевода исходных текстов в машинный код.
В 1992 г. фирма Borland International выпустила два пакета, основанных на языке Паскаль: Borland Pascal 7.0 и Turbo Pascal 7.0. Первый может работать в трех режимах - обычном и защищенном режимах MS DOS и в системе Windows. Для него необходимо порядка 30 Мбайт на жестком диске и около 2 Мбайт оперативной памяти. Турбо Паскаль 7.0 работает только в обычном режиме MS DOS и менее требователен к характеристикам компьютера, поэтому является лидером семейства Паскаль для ПЭВМ. Эта версия позволила объединить в рамках единой системы мощный алгоритмический потенциал языка высокого уровня, методы объектно-ориентированного программирования, современную графику, удобные средства тестирования и отладки программ, а также обеспечить дружественный интерфейс с пользователями.
Язык Си, созданный Денисом Ритчи в начале 70-х годов, является одним из универсальных языков программирования. Он считается языком системного программирования. Но правильнее сказать, что он наиболее эффективен при решении задач системного программирования, хотя он, безусловно, удобен и при написании прикладных программ. Среди преимуществ языка Си можно отметить переносимость программ, написанных на нем, на компьютеры различной архитектуры и из одной операционной системы в другую, лаконичность записи алгоритмов, логическую стройность и удобочитаемость программ, возможность получить эффективный код программ, сравнимых по скорости с программами, написанными на ассемблере. Удобство языка Си основано на том, что он является одновременно и языком высокого уровня, имеющем полный набор конструкций структурного программирования. В то же самое время язык Си имеет набор низкоуровневых средств, позволяющих иметь удобный доступ к аппаратным средствам компьютера, в частности позволяющих добраться до каждого бита памяти.
В начале 80-х годов в результате дополнения и расширения языка С был создан новый по сути язык, получивший название "Си с классами". В 1983 году это название было заменено на Си++. Автор языка создавал его с целью улучшить язык Си, поддержать абстракции данных и объектно-ориентированного программирования. Изначально Си++ был разработан так, чтобы автору не приходилось программировать на ассемблере, Cи или других современных языках высокого уровня. Основным его предназначением было сделать написание хороших программ более простым и приятным для отдельного программиста.

3. Основные элементы алгоритмического языка

Основными понятиями в алгоритмических языках являются следующие.
Имена (идентификаторы) - последовательность символов для обозначения объектов программы (переменных, массивов, функций и дp.).
Операции. Существуют следующие типы операций:
- арифметические операции: сложение, обозначается символом “+”; вычитание, обозначается символом “-”; умножение, обозначается символом “*”; деление, обозначается символом “/” и дp. ;
- логические операции: операции “логическое и”, “логическое или”, “логическое не” и др.;
- операции отношения: меньше, обозначается символом “<”; больше, обозначается символом “>”; меньше или равно, обозначается символами “<=”; больше или равно, обозначается символами “>=”; равно, обозначается символом “=”; не равно, обозначается символами “<>”.
- операция конкатенации символьных значений дpуг с другом, изображается знаком "+".
Ключевые слова – это слова языка, имеющие строго определенное назначение, которые не могут использоваться в качестве идентификаторов.
Данные - величины, обрабатываемые программой. Имеется тpи основных вида данных: константы, переменные и массивы.
Константы - это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.
Переменные – это данные, которые могут изменять свои значения в ходе выполнения программы. Они обозначаются именами. Переменные бывают целые, вещественные, логические, символьные и строковые.
Массивы - последовательности однотипных элементов, число которых фиксировано и которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами - одним в случае одномерного массива, или несколькими, если массив многомерный.
Выражения – элементы языка, которые предназначаются для выполнения необходимых вычислений, состоят из констант, переменных, указателей функций, объединенных знаками операций.
Различают выражения арифметические, логические и строковые.
Арифметические выражения служат для определения одного числового значения. Арифметические выражения записываются по следующим правилам:
1. Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций.
2. Индексы элементов массивов записываются в скобках.
3. Операции выполняются в порядке старшинства: сначала вычисление функций, затем возведение в степень, потом умножение и деление и в последнюю очередь - сложение и вычитание.
4. Операции одного старшинства выполняются слева направо.
Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться. Таким образом, логическое выражение может принимать только два значения - "истина" или "ложь" (да или нет).
В записи логических выражений помимо арифметических операций сложения, вычитания, умножения, деления и возведения в степень используются операции отношения и логические операции.
Значения строковых выражений - тексты. В них могут входить строковые константы, строковые переменные и строковые функции, разделенные знаком операции конкатенации.
Оператор – это элемент языка, который задает полное описание некоторого действия, которое необходимо выполнить. Оператор - это наиболее крупное и содержательное понятие языка: каждый оператор представляет собой законченную фразу языка программирования и определяет некоторый вполне законченный этап обработки данных. В состав операторов входят ключевые слова; данные; выражения и т.д.
Стандартная функция – подпрограмма, заранее встроенная в транслятор языка для вычисления часто употребляемых функций. В качестве аргументов функций можно использовать константы, переменные и выражения.
Программа - это последовательность инструкций, предназначенных для выполнения компьютером. В настоящее время программы оформляются в виде текста, который записывается в файлы.
Программирование – это теоретическая и практическая деятельность решения задачи средствами конкретного языка программирования и оформления полученных результатов в виде программы.
На стадии программирования возникает этап отладки программы – процесс обнаружения и устранения ошибок в программе, производимой по результатам ее тестирования на компьютере.
После окончательной отладки программа документируется, т.е. к ней прилагается описание назначения программы и инструкция по эксплуатации. Только после этого программа становится законченным программным продуктом, подготовленным к реализации как любой иной вид промышленной продукции.
Языки высокого уровня работают через трансляционные программы -трансляторы, которые преобразуют исходный код в последовательность команд машинного языка. Существует два основных вида трансляторов: интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и компиляторы, которые сканируют исходный код для создания текста программы на машинном языке, которая затем выполняется отдельно.
В общем случае программа может иметь модульную структуру, т.е. состоять из нескольких программных единиц, связанных между собой командами передачи управления. Такой принцип построения программ называется модульным. Программная единица, с первой команды которой начинается выполнение программы, называется головной программой. Остальные программные единицы, входящие в единую программу, называются подпрограммами.
Подпрограмма - это последовательность операторов, которые определены и записаны только в одном месте программы, однако их можно вызвать для выполнения из одной или нескольких точек программы.
Функция - это программная единица, которая может быть употреблена в выражении. Функция прямо возвращает величину, которая используется при вычислении этого выражения, и, кроме того, может возвращать величины через параметры.
Процесс разработки многомодульных программ эффективнее, особенно если разрабатывается программа большого размера, когда над реализацией проекта может работать несколько программистов, каждый из которых имеет возможность модифицировать фрагменты программы, не мешая работе остальных.
Подпрограммы и функции позволяют создавать большие структурированные программы, которые можно делить на части. Это дает преимущества в следующих ситуациях:
1. Если программа большая, разделение ее на части облегчает создание, тестирование и ее сборку.
2. Если программа большая и повторная компиляция всего исходного текста занимает много времени, разделение ее на части экономит время компиляции.
3. Если процедуру надо использовать в разных случаях разным образом, можно записать ее в отдельный файл и скомпилировать отдельно.
Для популярных языков программирования на ЭВМ существует множество систем программирования. Программисты предпочитают те системы, которые легки в использовании, позволяют получить эффективные программы, имеют богатые библиотеки функций (подпрограмм) и мощные возможности для отладки разрабатываемых программ. В качестве примеров таких систем программирования можно назвать Delphi, Visual C++, Visual Basic.
Системы программирования прежде всего различаются по тому, какой язык программирования они реализуют. Среди программистов, пишущих программы для персональных компьютеров, наибольшей популярностью пользуются языки Си, Паскаль и Бейсик.

Заключение

Первые языки программирования были очень примитивными и мало чем отличались от формализованных упорядоченных последовательностей единиц и нулей, понятных компьютеру. Использование таких языков было крайне неудобно с точки зрения программиста, так как он должен был знать числовые коды всех машинных команд, должен был сам распределять память под команды программы и данные.
Быстрый рост производительности ЭВМ, с одной стороны, и хроническая нехватка программистских кадров, с другой стороны, послужили причиной бурного развития и применения высокоуровневых языков программирования. Изобретение языка программирования высшего уровня позволило нам общаться с машиной, понимать её. Но если мы обратим внимание на темпы роста и развития новейших технологий в области программирования, то можно предположить, что в ближайшем будущем, человеческие познания в этой сфере, cмогут произвести на свет языки, умеющие принимать, обрабатывать и передавать информации в виде слова, звука или жеста.
С точки зрения принципов программирования языки программирования можно разбить на 3 группы: процедурные, функциональные и логические.
Основой всех языков программирования являются процедурные языки, поскольку в основе работы компьютера (центрального процессора) на самом низком уровне лежит возможность исполнять только примитивные команды, явно указывающие, что делать процессору. Языки других типов можно рассматривать как надстройки над процедурными языками программирования. В этих языках (функциональные и логические) заложены и реализованы определенные математические модели, позволяющие более эффективно программировать некоторые специфические типы задач. Но трансляторы (компиляторы), библиотеки и другие средства этих языков программирования все равно реализованы посредством процедурных языков программирования.

Список литературы

1. Аппаратные средства IBM PC. Энциклопедия, 2-е изд. СПб:. 2002.
2. Архитектура ПК, комплектующие, мультимедиа. - Рудометов Е., Рудометов В. – Питер, 2004.
3. Гейн А.Г., Сенокосов А.И. Информатика. - М.: Дрофа, 2003.
4. Гусева А.И. Работа в локальных сетях NetWare 3.12-4.1.- Учебник. – М.:Диалог – МИФИ, 2001.
5. Джон Д.Рули, Дэвид Мэсвин, Томас Хендерсон, Мартин Хеллер. Сети Windows NT 4.0. – BHV – Киев, 2006.
6. Еремина. М.: Финансы и статистика, 2001.
7. Кузнецов А.А. и др. Основы информатики. - М.: Дрофа, 2005.
8. Кушниренко А.Г. и др. Информатика. - М.: Дрофа, 2001.
9. Лебедев Г.В., Кушниренко А.Г. 12 лекций по преподаванию курса информатики. - М.: Дрофа, 2005.
10. Михаил Гук. Сети NetWare 3,12-4.1 книга ответов. – СП: Питер, 1996.
11. Нанс Б. Компьютерные сети. – М.: БИНОМ, 2000.
12. Фигурнов В.Э. IBM PC для пользователя краткий курс. – М. Инфра М, 2004.

Приложения

Сравнительный анализ языков программирования Паскаль, Visual Basic, Java
Паскаль Visual Basic Java
какие из известных языков лежат в основе языка ярко выраженного прототипа нет, в основе лежат длительные научные наработки синтаксис от языка Basic синтаксис от языка Си
тип языка процедурный, объектно-ориентированный процедурный, объектно-ориентированный процедурный, объектно-ориентированный
наиболее яркие особенности языка строгая типизация, разрабатывался как учебный язык, дальнейшее его развитие фирмой Borland (строгая концепция объектно-ориентированного программирование и не менее строгое ее практическое воплощение в виде среды TurboVision; первая в своем классе объектно-ориентированная визуальная среда разработки Delphi) берет начало от VBA (Visual Basic for Applications) для MS Word, Excel, Access. Яркая идея, заложенная в эти языки, заключается в управлении объектами, отражающими иерархическую структуру документа, электронной таблицы или базы данных. в язык заложен очень мощный потенциал, отличается длительным и интенсивным периодом разработки, наличием стандарта; производит такое же мощное и благоприятное впечатление, какое в свое время произвел язык Паскаль, и характеризуется таким же мощным шествием и продвижением
современное состояние языка как практическая среда разработки находится в упадке, заложенные в язык классические принципы оказываются недостаточными для современного программирования; новые возможности не всегда гармонично вписываются в язык в свое время получил широкую популярность из-за своей простоты и до сих пор не хочет с ней расставаться находится на пике развития; единственным сдерживающим фактором является конкурентная борьба фирм Sun (разработчика языка Java) и Microsoft, продвигающей свою альтернативную технологию .Net и язык C Sharp
основные образующие элементы программа, модуль, DLL-библиотека, процедура, класс, объект (Visual Basic for Applications) функция, макрос класс, метод, пакет. Главной отличительной особенностью является отсутствие деления, присущего классическим процедурным языкам, на единицы выполнения (программы), компиляции (модули), динамически подключаемых библиотек (DLL). В языке Java все эти нагрузки несет одна единица (класс). Также классы имеют то же значение, что и в других языках (иерархия классов)


Скачиваний: 2
Просмотров: 0
Скачать реферат Заказать реферат