Автор работы: Пользователь скрыл имя, 26 Февраля 2012 в 01:52, реферат
Итак, интерес к языкам программирования снизился, а круг используемых языков стабилизировался. В некотором смысле можно считать, что в области языков программирования "все сказано", и развитие средств разработки ПО пойдет дальше другими путями. Наступил удачный момент для анализа современных языков программирования и выяснения достигнутых практических результатов.
1. Введение
2. Современные языки программирования
2.1 Паскаль
2.2 Ассемблер
2.3 Си
2.4 Бейсик
2.5 Лого
2.6 Форт
2.7 Пролог
2.8 Рефал
2.9 Лекс
3 Понятие, назначение и составные элементы систем программирования
3.1 Машинно-ориентированные системы программирования
3.1.1 Машинный язык
3.1.2 Системы символического кодирования
3.1.3 Автокоды
3.1.4 Макрос
3.2 Машинно-независимые системы программирования
3.2.1 Процедурно-ориентированные системы
3.2.2 Проблемно-ориентированные системы
3.2.3 Диалоговые языки
3.2.4 Непроцедурные языки
4 Выводы
5 Практическая часть
6 Список литературы
Оглавление
1. Введение
2. Современные языки программирования
2.1 Паскаль
2.2 Ассемблер
2.3 Си
2.4 Бейсик
2.5 Лого
2.6 Форт
2.7 Пролог
2.8 Рефал
2.9 Лекс
3 Понятие, назначение и составные элементы систем программирования
3.1 Машинно-ориентированные системы программирования
3.1.1 Машинный язык
3.1.2 Системы символического кодирования
3.1.3 Автокоды
3.1.4 Макрос
3.2 Машинно-независимые системы программирования
3.2.1 Процедурно-ориентированные системы
3.2.2 Проблемно-ориентированные системы
3.2.3 Диалоговые языки
3.2.4 Непроцедурные языки
4 Выводы
5 Практическая часть
6 Список литературы
Введение
Связь между языком, на котором мы думаем, программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их просто игнорируют. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств. Сегодня практически все программы создаются с помощью языков программирования.
Неотъемлемая часть современных ЭВМ – системы программного обеспечения, являющиеся логическим продолжением логических средств ЭВМ, расширяющим возможности аппаратуры и сферу их использования. Основное назначение программного обеспечения – повышение эффективности труда пользователя, а также увеличение пропускной способности ЭВМ посредством сокращения времени и затрат на подготовку и выполнение программ.
В своей работе мне хотелось бы разобрать несколько основных современных языков, таких как Паскаль, Ассемблер, С++, Бейсик, Лого, Форт, Пролог, Рефал и Лекс, а также системы программирования и их составляющие (машинный язык, системы символического кодирования, автокоды, макросы, процедурно-ориентированные системы, проблемно-ориентированные системы, диалоговые языки, непроцедурные языки).
Если проследить историю используемых сегодня языков программирования, таких как Си и Паскаль (а равно и менее популярных Бэйсик, Фортран или Ада), то окажется, что все они были созданы на рубеже 60-х и 70-х годов. Иными словами, возраст современных языков программирования (за исключением Явы, о которой разговор особый), перевалил за третий десяток, что для компьютерной индустрии является сроком экстремальным. Современные языки программирования старше Интернета, Windows и персонального компьютера минимум на десятилетие. При этом новые языки не переставали регулярно появляться, однако ни один из них не задержался в практике программирования, хотя приносимые ими новые идеи дополняли уже известные языки (как это произошло с объектно-ориентированным программированием).
Другой важной особенностью языкотворчества последних десятилетий можно считать прекращение попыток создания "универсального" языка программирования, призванного объединить в себе все последние достижения в области разработки языков (из попыток 60-х _ 70-х годов можно вспомнить Алгол, PL/1 или Аду). Крупные "языковые" проекты безвозвратно ушли в прошлое вместе с порожденными ими языками.
Наконец, появление персонального компьютера и ОС с графическим интерфейсом (прежде всего MacOS и Windows) переместило внимание разработчиков программного обеспечения из сферы языков программирования в другие области средств разработки ПО, такие, как визуальное или объектно-ориентированное программирование, сетевые протоколы или модели баз данных. Программист сегодня использует в качестве инструмента не столько язык, сколько конкретную систему программирования (например, Delphi), а какой язык является для нее базовым, не так уж важно.
Итак, интерес к языкам программирования снизился, а круг используемых языков стабилизировался. В некотором смысле можно считать, что в области языков программирования "все сказано", и развитие средств разработки ПО пойдет дальше другими путями. Наступил удачный момент для анализа современных языков программирования и выяснения достигнутых практических результатов.
Современные языки программирования
Первые несколько поколений ЭВМ строились на классических принципах, сформулированных американским математиком Джоном фон Нейманом в 1946 г., когда начались разработки цифровых ЭВМ с программным управлением. Одним из основных принципов Д. фон Неймана является принцип хранимой программы. Под программой вычислительной машины понимается описание алгоритма решения задачи, заданное на языке вычислительной машины. Таким образом, языки программирования – это формальные языки общения человека с ЭВМ, предназначенные для описания совокупности инструкций, выполнение которых обеспечивает правильное решение требуемой задачи, т.е. для описания подлежащих обработке данных (информации) и алгоритмов (программ). Основная роль языков программирования заключается в планировании действий по обработке информации. Любой язык программирования основан на системе понятий, на основе которой человек может выражать свои соображения.
Теоретическую основу языков программирования составляют алгоритмические языки. В настоящее время для ЭВМ разработано значительное количество языков программирования. Они отличаются друг от друга различными свойствами, а значит, и областью применения. Примерная классификация языков программирования приведена на рисунке 1.
Рис.1. Классификация языков программирования
2.1 Паскаль1
В 1968 году Никлас Вирт (Niklaus Wirth) написал первый компилятор языка Pascal (Паскаль). Этот язык получил название в честь выдающегося французского математика Блеза Паскаля (Blaise Pascal). Язык Pascal — удачный язык общего применения, подходящий для программирования как научных задач, так и задач, связанных с коммерческой деятельностью. Средства ввода/вывода этого языка несколько слабее, чем у таких коммерческих языков, как COBOL, поэтому он никогда не претендовал на его замещение. Тем не менее после первого опубликования Pascal был довольно основательным языком, который успешно справлялся со своей работой.
Популярность языка Pascal резко подскочила в 1970-х. Самое большое преимущество этого языка — поддержка концепции структурного программирования, позволяющей делать программы более удобными для изменения. Идеология структурного программирования интегрирована в язык, поэтому программы на языке Pascal проще в обслуживании, чем программы, написанные на других языках того времени.
В течение 1970-х годов Pascal был «единственным языком программирования, который всех устраивал». Компания IBM с помощью языка PL/I делала попытку создать что-то подобное. Так же как и PL/I, Pascal не достиг наивысшей цели. Популярность языка Pascal упала так же быстро, как и выросла. В 1970-х наблюдался огромный рост применения языка Pascal, а в 1980-х — резкий спад интереса к нему.
Несмотря на потерю занимаемого положения, Pascal открыл для других языков дорогу к поддержке структурных концепций, обслуживаемости программ и бесплатному использованию программ.
2.2 Ассемблер1
Язык Ассемблера - это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах. Некоторые задачи, например, обмен с нестандартными устройствами обработки данных сложных структур невозможно решить с помощью языков программирования высокого уровня. Это под силу ассемблеру. В принципе, язык Ассемблер является машинным языком. И программист, реализующий какую-либо задачу на язык высокого уровня, с помощью Ассемблера может определить осмысленно ли решение данной задачи, с точки зрения использования ЭВМ. Ассемблер имеет одну особенность, которая отпугивает многих начинающих языков программистов,- ассемблер является машинно-зависимым языком. Это означает, что пишущий на ассемблере работает непосредственно с ресурсами компьютера, что требует хорошего знания его архитектуры, логики работы операционной системы, а также большой аккуратности при написании программы.
Несмотря на то, что ассемблер является машинно-ориентированным языком, то есть языком низкого уровня, программист может применять его для работы, как на высоком, так и на среднем уровне. Низкий уровень программирования на ассемблере подразумевает прямое обращение к каналам ввода-вывода устройств, называемых портами ввода-вывода, и прямой доступ в оперативную память.
Turbo Assembler, помимо полной поддержки транслятора фирмы Microsoft имеет дополнительные возможности, объединённые в режиме, названном разработчиками Ideal. Использование этого режима даёт возможность начинающему программисту применять более наглядный и простой стиль разработки программ. Более опытные программисты, пишущие на ассемблере, могут использовать такие возможности режима Ideal, как вложенные структуры, объединения.
Важной особенностью режима Ideal является применение проверки типов данных, подобно языкам высокого уровня, что позволяет выявить многие ошибки ещё на этапе трансляции.
Ассемблер предоставляет программисту полую свободу действий при разработке программы, что является и его достоинством, и недостатком, так как требует от разработчика знания системы команд данного компьютера и его операционной системы. Кроме того, несмотря на минимальный размер выполняемого файла при максимальной скорости работы, время, необходимое для создания программы, резко возрастает с увеличением объёма разрабатываемого проекта. Поэтому ассемблер был и остаётся языком программирования для профессионалов.
2.3 Си++1
Наследник C язык C++ быстро завоевал поддержку, являясь обновленной версией языка C. C++ был разработан шведским программистом по имени Бьярн Страуструп (Bjarne Stroustrup) в начале 1980-х. C++ имеет на вооружении несколько дополнительных команд и операторов, но основное отличие заключается в подходе к программированию.
Главная причина, по которой и сейчас C++ остается популярным, — он поддерживает объектно-ориентированное программирование (ООП). ООП — это иной способ написания программ, помогающий программисту писать программы быстрее и с наименьшим числом ошибок. ООП также позволяет повысить скорость обслуживания.
Так как Си++ восходит, главным образом, к Си. Поэтому сделанного в Си акцента на средствах низкого уровня достаточно, чтобы справляться с самыми насущными задачами системного программирования. Си, в свою очередь, многим обязан своему предшественнику BCPL.
Си++ - это машинно-ориентированный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьёзного программиста. За исключением второстепенных деталей Си++ является надмножеством языка программирования Си.
Позднее была проведена проверка определения Си++, чтобы удостовериться в том, что любая конструкция, допустимая и в Си, и в Си++, действительно означает в обоих языках одно и то же. В Си++ нет типов данных высокого уровня и нет первичных операций высокого уровня. В нём нет, например, матричного типа с операций обращения.
Если пользователю понадобится подобный тип, его можно определить в самом языке. По сути дела, основным, чем занимается программирование на Си++ - это определение универсальных и специально-прикладных типов.
Популярность объектно-ориентированного языка C++ дала начало множеству новых языков для современного Интернета. Причиной успешного развития языка Java (Джава) (и его производных, таких как JavaScript) является широкомасштабное использование в нем языка C++, и хотя C++ не поддерживает достаточной безопасности программирования web-сайтов, его объектно-ориентированная природа делает Java хорошим кандидатом для программирования объектов Интернета. Компания Sun Microsystems изменила язык C++, добавив в него элементы обеспечения достаточной безопасности и убрав ряд сомнительных возможностей C++. (Примером является множественность наследования, которая позволяет генерацию одного объекта программирования, такого как окно, из набора нескольких родительских окон с различными характеристиками. Подобная концепция сбивает с толку даже при формулировании ее на высоком уровне.)
2.4 Бейсик
BASIC был разработан в колледже города Дартмут (Dartmouth) и предназначался для обучения начинающих. Язык FORTRAN был сложным для студентов нематематических отделений. Джон Кимини (John Kemeny) и Томас Курц (Thomas Kurtz), учившиеся в Дартмуте, при разработке языка BASIC в качестве основы использовали FORTRAN. BASIC — сокращение от Beginner’s All-purpose Symbolic Instruction Code (универсальный код символических инструкций для начинающих) — имя, которое говорит само за себя. BASIC, как правило, используется с интерпретатором, хотя современные версии BASIC являются компилирующими. Это позволяет новичкам сосредоточиться на языке программирования и не вникать в особенности компиляции. Как и все интерпретируемые языки, BASIC-программы выполняются медленнее, чем откомпилированные программы, поэтому программы на языке BASIC не используются в коммерческих приложениях.
Этот язык стал одним из самых распространённых. Бейсик был первоначально задуман как очень простой язык, который можно было бы очень быстро освоить. В язык были включены примитивные средства редактирования, с тем, чтобы избавить пользователя от необходимости разбираться во всех сложностях базовой операционной системы. Вначале Бейсик использовался только для обработки числовых величин, но позднее был расширен средствами обработки строковых переменных и снабжен набором процедур простого манипулирования символьными цепочками, который фактически стал стандартом. Простота Бейсика сделала его наиболее подходящим языком программирования для первых микроЭВМ. В настоящее время он является основным языком программирования персональных ЭВМ. К сожалению, почти каждая машина имеет свой собственный диалект Бейсика, поэтому мобильность программ на Бейсике обеспечить довольно трудно. В настоящее время во многие диалекты Бейсика включаются современные управляющие структуры типа: REPEAT…UNTIL, что вселяет определённый оптимизм.