Файл: Современные языки программирования (определение основных тенденций развития языков программирования).pdf
Добавлен: 06.04.2023
Просмотров: 257
Скачиваний: 2
ВВЕДЕНИЕ
Компьютеры – это машины, т.е. устройства, которые выполняют последовательность инструкций. Наборы этих инструкций и создают программисты. Сначала программы писались на машинном языке, что было долго, трудно и дорого. Затем появились языки программирования, что сделало возможным создавать программы, реализующие сложные алгоритмы. Это же сделало возможным массовое использование компьютеров в бизнесе. Скоро требования к программному обеспечению значительно выросли, а разработка программ стала делом долгим, трудным и дорогим. Решение этого кризиса стало возможным только в 80-х годах прошлого века, когда появились парадигмы программирования, которые объясняли, как надо писать программы без ошибок.
В последние десять лет появилась новая тенденция в развитие программного обеспечения – веб-разработка, т.е. разработка программного обеспечения для Интернета. Это новое направление породило новые языки программирования, которые основаны на специфических подходах, учитывающих особенности глобальной сети. В этой работе сделано предположение, что именно эта тенденция определяет развитие языков программирования в наше время.
Актуальность данной курсовой работы обусловлена тем, что в ней рассматривается процесс развития языков программирования в настоящее время.
Объект исследования: языки программирования.
Предмет исследования: современные тенденции развития языков программирования.
Цель исследования – определение основных тенденций развития языков программирования.
Для достижения этой цели необходимо решить следующие задачи:
- изучить историю развития средств языков программирования и их современную классификацию;
- найти статистику популярности языков программирования;
- ознакомится с современными языками программирования;
- ознакомится с современными тенденциями развития языков.
Курсовая работа состоит из введения, основной части, заключения и списка литературы.
1. ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1. Краткая история языков программирования
В 19 веке Ада Лавлейс написала пошаговые инструкции аналитической машины Чарльза Бэббиджа, и Лавлейс считается первым программистом [1, 2].
Первым языком программирования высокого уровня считается Plankalkülia, разработанный в 1940 - х годах немцем Konrad Zusen (К. Цузе). Однако описание языка не было опубликовано до 1972 года, и он не был реализован на компьютере.
Первым языком программирования, вероятно, обладал автоматический флейтист, описанный в 9 веке братьями Мусой в Багдаде во время исламского золотого века. С начала 1800-х годов программы использовались для управления поведением таких машин, как жаккардовые ткацкие станки, музыкальные шкафы и игровые пианино. Тем не менее, их программы (например, свитки игрока-пианиста) не могут приводить к другому поведению в ответ на какой-либо вход или состояние.
Очень ранние компьютеры, такие как Colossus , были запрограммированы без помощи хранимой программы, изменив их схему или установив переключатели физических элементов управления. Малогабаритная экспериментальная машина была первым компьютером, на котором программа могла быть сохранена в памяти компьютера.
Чуть позже программы стали записывать на машинный языке, где программист записывает каждую инструкцию в числовой форме, которую аппаратное обеспечение может выполнять напрямую. Например, инструкция по добавлению значения в две ячейки памяти может состоять из трех чисел: «код операции», который выбирает операцию «добавить» и два расположения памяти. Программы в десятичной или двоичной форме считывались с перфокарт или магнитной ленты или переключались на переключателях на передней панели компьютера. Языки машин позднее назвали языками программирования первого поколения (1GL). Характеристики более поздних компьютеров увеличили потребность в программировании на более высоком уровне, что привело к разработке символических машинных языков. Потребность в языках программирования более высокого уровня привели, в частности, к развитию ALGOL, COBOL и FORTRAN .
Этап 1: до середины 50-х годов. Большие затраты на кодирование, т.к. кодирование велось в машинных кодах. Появился Ассемблер (язык в помощь программирования) и трансляторы к ним.
Следующим шагом было развитие так называемых языков программирования второго поколения (2GL) или ассемблерных языков, которые все еще были тесно связаны с архитектурой набора команд конкретного компьютера. Они служили для того, чтобы сделать программу более удобной для восприятия человеком и освободить программиста от утомительных и подверженных ошибкам вычислений адресов.
В университете Манчестера , Алик Глени разработал AutoCode в начале 1950 - х годов. Он использовал компилятор для автоматического преобразования языка в машинный код. Первый код и компилятор был разработан в 1952 году для компьютера Mark 1 в Манчестерском университете и считается первым скомпилированным языком программирования высокого уровня.
Второй автокод был разработан для Mark 1 компанией RA Brooker в 1954 году и получил название «Mark 1 Autocode». Брукер также разработал автокод для Ferranti Mercury в 1950-х годах в сотрудничестве с Манчестерским университетом. Версия для EDSAC 2 была разработана DF Hartley из Кембриджской математической лаборатории Университета в 1961 году. Известная как EDSAC 2 Autocode, она была прямой разработкой от Mercury Autocode, адаптированной к местным условиям, и была отмечена для оптимизации объектного кода и исходного языка которые были выдвинуты на время. Современная, но отдельная нить разработки, Atlas Autocode была разработана для машины Манчестерского университета Atlas 1 .
2 этап: середина 50 - середина 60-х годов. Появляются различные языки высокого уровня: Fortran (1954-1957); Algol-60 (1958-1960 годы); Cobol (1959-1961 гг); Basic (1964); PL / 1 (1964); Lisp (1959) и трансляторов для них (компиляторы).
В 1954 году FORTRAN был изобретен в IBM Джоном Бэкусом. Это был первый широко используемый высокоуровневый язык программирования общего назначения, который имел функциональную реализацию, а не только дизайн на бумаге. Он по-прежнему является популярным языком для высокопроизводительных вычислений и используется для программ, которые сравнивают и оценивают самые быстрые суперкомпьютеры в мире. Еще один ранний язык программирования был разработан Грейс Хоппер в США под названием FLOW-MATIC. Он был разработан для UNIVAC I в Remington Rand в период с 1955 года по 1959 год. Хоппер обнаружил, что клиентам обработки бизнес-данных было неудобно с математической нотацией, а в начале 1955 года она и ее команда написали спецификацию английского языка программирования и внедрили прототип. Компилятор FLOW-MATIC стал общедоступным в начале 1958 года и был практически завершен в 1959 году. Flow-Matic оказал большое влияние на дизайн COBOL , поскольку только он и его непосредственный потомок AIMACO были фактически использованы на время.
Период с 1960-х по конец 1970-х годов привел к разработке основных языковых парадигм, используемых в настоящее время:
APL представила программирование массивов и повлияло на функциональное программирование.
ALGOL уточнил как структурированное процедурное программирование, так и дисциплину языковой спецификации; «Пересмотренный отчет по алгоритмическому языку ALGOL 60» стал образцом для написания более поздних спецификаций языка.
Lisp, реализованный в 1958 году, был первым динамически типизированным функциональным языком программирования
В 1960-х годах Simula был первым языком, предназначенным для поддержки объектно-ориентированного программирования; в середине 1970-х годов Smalltalk сопровождался первым «чисто» объектно-ориентированным языком.
C был разработан между 1969 и 1973 годами как язык системного программирования для операционной системы Unix и остается популярным.
Пролог, разработанный в 1972 году, был первым логическим языком программирования.
В 1978 году ML построил систему полиморфного типа поверх Lisp, новаторских статически типизированных языков программирования .
Каждый из этих языков породил потомков, и большинство современных языков программирования считают, по крайней мере, один из них в своей родословной.
3 этап: середина 60-х - начало 70-х годов. Размер программы резко увеличивается и происходит переход на коллективный характер труда. Требования для программного обеспечения увеличивается из-за перехода на серийное производство.
4 этап ("этап кризиса разработки программного обеспечения"): в начале 70-х и середины 70-х годов. Несмотря на развитие средств программирования, производительность труда программистов не растет. Условия разработки программного обеспечения не выполняются, их стоимость растет, качество их непредсказуемо, традиционные методы (которые обеспечивают человеческие ресурсы и другие материалы) не работают, что характеризуется как "кризис программного обеспечения".
Получают признание методологии структурного программирования (Dijkstra, 1968), формируются основы технологии программирования (язык Паскаль (Н. Вирт), 1971).
5 этап: 1976 - наше время. Стадии развития инструментов после кризиса. В 1976 вводится понятие жизненного цикла программного обеспечения, и отметим, что основные затраты теперь приходятся не на развитие, а на сопровождение.
Языки программирования: C (в начале 1970-х, 1978), Modula-2 (1978, развитие - язык Оберон (1988)), Ада (1980), Prolog (1972, распространяется начиная с 1980 года), Smalltalk (1970-х годов, в 1980 году был введен как Smalltalk-80), C ++ (В начале 1980-х годов, имя - 1983), Java (Java версия 1.0 - 1996, Java 2.0 - 1998, Java 5 - 2004 ...), C # (1998-2001, версия 1.0) - 2000-2002, версия 2.0 - 2003-2005, версия 3.0 - 2004-2008, версия 4.0 - 2008-2010 годы).
Большое признание получил подход объектно-ориентированного проектирования и программирования.
А что нового сейчас?
1.2. Определения
Язык программирования - это обозначение для написания программ, которые являются спецификациями вычисления или алгоритма [1-3]. Некоторые, но не все, авторы ограничивают термин «язык программирования» теми языками, которые могут выражать все возможные алгоритмы. Черты, которые часто считаются важными для того, что составляет язык программирования, включают:
Функция и цель
Язык программирования есть язык, который используется для записи компьютерных программ, которая выполняет какие - то вычисления или алгоритм и, возможно, управляет внешними устройствами, такими как принтеры, дисковые накопители, роботы, и так далее. Например, программы PostScript часто создаются другой программой для управления компьютерным принтером или дисплеем. В более общем плане язык программирования может описывать вычисления на некоторых, возможно, абстрактных машинах. Общепризнано, что полная спецификация для языка программирования включает описание, возможно, идеализированное для машины или процессора для этого языка. В большинстве практических контекстов язык программирования включает компьютер; следовательно, языки программирования обычно определяются и изучаются таким образом. Языки программирования отличаются от естественных языков тем, что естественные языки используются только для взаимодействия между людьми, в то время как языки программирования также позволяют людям передавать инструкции машинам.
Абстракции.
Языки программирования обычно содержат абстракции для определения и управления структурами данных или управления потоком выполнения. Практическая необходимость того, чтобы язык программирования поддерживал адекватные абстракции, выражается принципом абстракции; этот принцип иногда формулируется как рекомендация программисту правильно использовать такие абстракции.
Выразительная сила.
Теория вычисления классифицирует языки по вычислениям они способны выразить. Все полные языки Тюринга могут реализовывать один и тот же набор алгоритмов. ANSI / ISO SQL-92 и Charity являются примерами языков, которые не являются Тьюринговыми, но все же часто называются языками программирования.
Языки разметки, такие как XML, HTML или troff, которые определяют структурированные данные, обычно не рассматриваются как языки программирования. Языки программирования могут, однако, делиться синтаксисом с языками разметки, если определена вычислительная семантика. XSLT, например, является полным языком Тюринга, полностью использующим синтаксис XML. Кроме того, LaTeX, который в основном используется для структурирования документов, также содержит полное подмножество Тьюринга.
Термин компьютерный язык иногда используется взаимозаменяемо с языком программирования. Тем не менее, использование обоих терминов варьируется среди авторов, включая точный объем каждого из них. Одно использование описывает языки программирования как подмножество языков программирования. В этом ключе языки, используемые в вычислениях, которые имеют другую цель, чем выражение компьютерных программ, являются, как правило, компьютерными языками. Например, языки разметки иногда называют компьютерными языками, чтобы подчеркнуть, что они не предназначены для программирования.