Оглавление
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. Введение
Связь между языком, на котором мы думаем, программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их просто игнорируют. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств. Сегодня практически все программы создаются с помощью языков программирования.
Неотъемлемая часть современных ЭВМ – системы программного обеспечения, являющиеся логическим продолжением логических средств ЭВМ, расширяющим возможности аппаратуры и сферу их использования. Основное назначение программного обеспечения – повышение эффективности труда пользователя, а также увеличение пропускной способности ЭВМ посредством сокращения времени и затрат на подготовку и выполнение программ.
В своей работе мне хотелось бы разобрать несколько основных современных языков, таких как Паскаль, Ассемблер, С++, Бейсик, Лого, Форт, Пролог, Рефал и Лекс, а также системы программирования и их составляющие (машинный язык, системы символического кодирования, автокоды, макросы, процедурно-ориентированные системы, проблемно-ориентированные системы, диалоговые языки, непроцедурные языки).
Если проследить историю используемых сегодня языков программирования, таких как Си и Паскаль (а равно и менее популярных Бэйсик, Фортран или Ада), то окажется, что все они были созданы на рубеже 60-х и 70-х годов. Иными словами, возраст современных языков программирования (за исключением Явы, о которой разговор особый), перевалил за третий десяток, что для компьютерной индустрии является сроком экстремальным. Современные языки программирования старше Интернета, Windows и персонального компьютера минимум на десятилетие. При этом новые языки не переставали регулярно появляться, однако ни один из них не задержался в практике программирования, хотя приносимые ими новые идеи дополняли уже известные языки (как это произошло с объектно-ориентированным программированием).
Другой важной особенностью языкотворчества последних десятилетий можно считать прекращение попыток создания "универсального" языка программирования, призванного объединить в себе все последние достижения в области разработки языков (из попыток 60-х _ 70-х годов можно вспомнить Алгол, PL/1 или Аду). Крупные "языковые" проекты безвозвратно ушли в прошлое вместе с порожденными ими языками.
Наконец, появление персонального компьютера и ОС с графическим интерфейсом (прежде всего MacOS и Windows) переместило внимание разработчиков программного обеспечения из сферы языков программирования в другие области средств разработки ПО, такие, как визуальное или объектно-ориентированное программирование, сетевые протоколы или модели баз данных. Программист сегодня использует в качестве инструмента не столько язык, сколько конкретную систему программирования (например, Delphi), а какой язык является для нее базовым, не так уж важно.
Итак, интерес к языкам программирования снизился, а круг используемых языков стабилизировался. В некотором смысле можно считать, что в области языков программирования "все сказано", и развитие средств разработки ПО пойдет дальше другими путями. Наступил удачный момент для анализа современных языков программирования и выяснения достигнутых практических результатов.
2. Современные языки программирования
Первые несколько поколений ЭВМ строились на классических принципах, сформулированных американским математиком Джоном фон Нейманом в 1946 г., когда начались разработки цифровых ЭВМ с программным управлением. Одним из основных принципов Д. фон Неймана является принцип хранимой программы. Под программой вычислительной машины понимается описание алгоритма решения задачи, заданное на языке вычислительной машины. Таким образом, языки программирования – это формальные языки общения человека с ЭВМ, предназначенные для описания совокупности инструкций, выполнение которых обеспечивает правильное решение требуемой задачи, т.е. для описания подлежащих обработке данных (информации) и алгоритмов (программ). Основная роль языков программирования заключается в планировании действий по обработке информации. Любой язык программирования основан на системе понятий, на основе которой человек может выражать свои соображения.
Теоретическую основу языков программирования составляют алгоритмические языки. В настоящее время для ЭВМ разработано значительное количество языков программирования. Они отличаются друг от друга различными свойствами, а значит, и областью применения. Примерная классификация языков программирования приведена на рисунке 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 Ассемблер[2]
Язык Ассемблера - это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах. Некоторые задачи, например, обмен с нестандартными устройствами обработки данных сложных структур невозможно решить с помощью языков программирования высокого уровня. Это под силу ассемблеру. В принципе, язык Ассемблер является машинным языком. И программист, реализующий какую-либо задачу на язык высокого уровня, с помощью Ассемблера может определить осмысленно ли решение данной задачи, с точки зрения использования ЭВМ. Ассемблер имеет одну особенность, которая отпугивает многих начинающих языков программистов,- ассемблер является машинно-зависимым языком. Это означает, что пишущий на ассемблере работает непосредственно с ресурсами компьютера, что требует хорошего знания его архитектуры, логики работы операционной системы, а также большой аккуратности при написании программы.
Несмотря на то, что ассемблер является машинно-ориентированным языком, то есть языком низкого уровня, программист может применять его для работы, как на высоком, так и на среднем уровне. Низкий уровень программирования на ассемблере подразумевает прямое обращение к каналам ввода-вывода устройств, называемых портами ввода-вывода, и прямой доступ в оперативную память.
TurboAssembler, помимо полной поддержки транслятора фирмы Microsoft имеет дополнительные возможности, объединённые в режиме, названном разработчиками Ideal. Использование этого режима даёт возможность начинающему программисту применять более наглядный и простой стиль разработки программ. Более опытные программисты, пишущие на ассемблере, могут использовать такие возможности режима Ideal, как вложенные структуры, объединения.
Важной особенностью режима Ideal является применение проверки типов данных, подобно языкам высокого уровня, что позволяет выявить многие ошибки ещё на этапе трансляции.
Ассемблер предоставляет программисту полую свободу действий при разработке программы, что является и его достоинством, и недостатком, так как требует от разработчика знания системы команд данного компьютера и его операционной системы. Кроме того, несмотря на минимальный размер выполняемого файла при максимальной скорости работы, время, необходимое для создания программы, резко возрастает с увеличением объёма разрабатываемого проекта. Поэтому ассемблер был и остаётся языком программирования для профессионалов.
2.3 Си++[3]
Наследник C язык C++ быстро завоевал поддержку, являясь обновленной версией языка C. C++ был разработан шведским программистом по имени Бьярн Страуструп (Bjarne Stroustrup) в начале 1980-х. C++ имеет на вооружении несколько дополнительных команд и операторов, но основное отличие заключается в подходе к программированию.