Файл: Классификация языков программирования. Критерии выбора среды и языка разработки( Разработка языков программирования).pdf
Добавлен: 25.04.2023
Просмотров: 441
Скачиваний: 2
СОДЕРЖАНИЕ
1. Языки программирования и их классификация
1.1 Разработка языков программирования
1.2 Роль и значения языков программирования
2.Критерии выбора языка для разработки программ
2.1 Обзор характеристик языков программирования
2.2 Какие языки нужны компаниям?
2.3 Популярность языков программирования
Некоторые языки могут иметь черты, как третьего поколения, так и четвертого поколения.
Вернее сказать, что языки программирования четвертого поколения – это логичное развитие языков третьего поколения, которые упрощают работу программистам из-за того, что в своей основе эти языки встроены в собственную программную оболочку с функциями, помогающими разработчиках. Еще к этому же поколению относятся языки параллельного программирования, ориентированные на создание программных средств многопроцессорной архитектуры.
Пятое поколение. Ну, а пятого поколения языка программирования покамест , не существует.
Языки пятого поколения, по сути, должны упростить и ускорить работу программистов еще больше, так как целью этих языков является с человека переложить значительную часть работы на компьютер. На данный момент времени, нет решений, которые могут выдать полноценный продукт, при этом получая лишь задачу. Некоторые разработчики говорят о системе MathCAD, что она в действительности достаточно заметно облегчает работу пользователя, перекладывая на себя огромную часть вычислительной работы. Но все таки, в настоящее время нет определенных критерий , по которым можно определить языки программирования пятого поколения.
С развитием глобальной сети было создано много языков программирования, специально адаптированных для Интернета. Скриптовые языки – это, когда программы написаны исходных текстах и интерпретаторы распространяются бесплатно.
Помимо этого существуют языки веб-программирования – это языки, предназначенные в основном для работы с веб-технологиями, и их условно можно разделить на две пересекающиеся группы:
- Клиентские
- Серверные
Программы, которые написаны на клиентских языках, обрабатываются со стороны пользователя и его браузера, в этом и осуществляется проблема клиентских языков, так как результат выполнения зависит от браузера пользователя. Самыми распространенными клиентскими языками программирования являются: HTML ,CSS, JavaScript, VBScript, ActionScript ,Java.
Серверные языки программирования – это, когда пользователь на какую-либо страницу дает заброс, то эта страница сначала обрабатывается на сервере, и уже после возвращается к пользователю. Работа программы полностью зависит от сервера, на котором находится сайт. К серверным языкам программирования можно отнести: PHP, Perl, Python, Ruby, любой .NET язык программирования,Java ,Groovy.
1.1 Разработка языков программирования
Любую систему обозначений, которая пригодна для описания алгоритмов и структур данных можно назвать языком программирования.
Существует двенадцать основных языков программирования: Ada, C, C++, Fortran, Java, LISP, ML, Pascal, Perl, Postscript, Prolog и Smalltalk.
С того самого момента как 50-е годы были созданы первые языки программирования высокого уровня, стали постоянно развиваться и улучшаться методы их разработки. Вышесказанные двенадцать языков, все они появились в разное время.
Первые версии Fortran, LIPS были созданы и разработаны в 50-е годы, а история таких языков как Ada, C, Pascal, Prolog, Smalltalk начинается в 70-е годы, в 80-х годах возникли языки C++,ML, Perl, Postscript и самый молодой язык ,появившийся на свет в 90-е годы - это Java.
В 60-е и 70-е годы часто появлялись новые языки во время разработки по созданию программного обеспечения. В 70-е годы Министерство обороны США в рамках основного проекта разработки языка Ada был составлен отчет об используемых языках программирования на то время и выяснилось , что было использовано более 500 языков.
Первый этап развития компьютерных технологий относится к периоду начала Второй мировой войны и продолжался до начала 40-х.
В начале 50-х начали появляться первые языки программирования, которые использовали символьные системы обозначений. Грейс Хупер возглавил группу по разработки языка A-0 в компании Univac,а Джон Бэкус создал язык Speedcoding для IBM 701. Эти оба языка были предназначены для преобразования простых арифметических выражений в исполняемый машинный код.
Но в 1957 году произошел большой прорыв, в то время когда Бэкус руководил группой по созданию языка Fortran. На ранних стадиях разработки Fortran был направлен на численные вычисления, но в итоге вышел вполне законченным языком программирования, который включал в себя управляющие структуры, условные операторы и операторы ввода и вывода. Немногие тогда думали и верили, что получится язык способный создать конкуренцию языку ассамблера, в котором машинные команды кодировались в ручную, основной задачей было создать эффективный исполнительный код, поэтому многие операторы разрабатывались с учетом специфики ЭВМ IBM 704. Вся концепция языка выглядела не очень изящно, но в те времена еще ни кто и не думал об элегантном программировании, зато получившийся в итоге язык позволял писать программы достаточно быстро.
Fortran покакал себя весьма удачным языком и оставался доминирующим вплоть до 70-х годов. Следующая версия Fortran вышла в 1958 году и стала называться Fortran II, а спустя еще несколько лет вышел Fortran IV, так как каждый разработчик создавал для своих компьютеров собственную версию языка, то можно сказать начался хаос. Таким образом, в 1996 году Fortran IV стал считаться стандартным и носить название Fortran 66, в результате этого появились такие стандарты как Fortran 77 и Fortran 90.
Так как Fortran оказался весьма успешным языком, в Европе возникли опасения, что IBM будет доминировать в компьютерной отрасли. Немецкое общество прикладной математики GAMM создало комитет по разработке универсального языка. В это же время ACM организовала похожий комитет в США. Несмотря на то, что у европейцев было некоторое опасение по поводу господства американцев, в итоге оба эти комитета слились воедино. Под руководством Питера Наура в этом комитете был разработан IAL, но так как общеупотребительным стало название ALGOL, то решили сделать официальным именно его, хотя с начало было отвергнуто.
Если язык Fortran разрабатывался для эффективного использования на IBM 704, то перед разработчиками ALGOL стояли совершенно другие цели:
- Сделать как можно ближе к стандартной математической системе обозначений в ALGOL.
- ALGOL должен быть приспособлен для описания алгоритмов.
- Программы на ALGOL должны были компилировать в машинный язык.
- ALGOL не должен быть привязан к конкретной машинной архитектуры.
Но все эти цели оказались недостижимы в 1958 году. Чтобы обеспечить независимость от архитектуры, в этот язык не были включены возможности ввода и вывода.
В настоящее же время он практически забыт, так как его вытесняли другие языки программирования как C,C++,Ada.
Basic был разработан для того, чтобы удовлетворить в численных расчетов людей, которые не имели отношение к науке , однако в будущем его возможности были расширены и вышли далеко за изначальные цели разработчиков.
Сфера обработки деловой информации стала следующей после числительных расчетов областью, которая привлекала внимание разработчиков языка. Группа сотрудников Univac под руководством Грейса Хупера в 1955 году разработала язык FLOWMATIC. Цель, которого состояла в создании приложений для обработки деловой информации, при котором использовалось бы некоторые англо подобные тексты.
В 1955 году было профинансировано Министерством обороны США совещание по разработке языка CBL, который должен был стать бизнес-ориентированным языком, использовавший на максимум в качестве обозначений для своих программ английский язык, но было много несогласных, поэтому в связи с этим был создан специальный комитет Short Range Committee, члены данного комитета думали, что они должны будут разрабатывать некий промежуточный вариант языка , но так получилось, что опубликованная в 1960 году разработанная спецификация, определила новый язык-COBOL. Он пересматривался в 1961 и 1962 годах и был стандартизован в 1968 году, но в 1974 и в 1984 годах снова подвергся пересмотру.
Интерес к языкам искусственного интеллекта возник в 50-е годы, когда был разработан язык IPL компанией Rand Corporation. Версия IPL-V, стала довольно широко известна, но ее использование ограничилось тем , что этот язык не был языком высокого уровня. Но большим шагом вперед стала разработка Джоном Мак-Карти языка LIPS для компьютера IBM 704. Версия LIPS 1.5 стала стандартом для его реализации на многие годы, но развитие LIPS продолжается до настоящего времени.
LIPS разрабатывался как функциональный язык обработки списков . Естественной областью приложения LIPS является разработка стратегии ведения игры. Другой естественной областью применения этого стал автоматический машинный перевод текста, где одна цепочка символов может заменять на другую. В этой области первой разработкой был язык COMIT, созданный Инге, сотрудником MIT. Каждый оператор программы, написанный на этом языке, был очень похож на контекстно-независимое правило и представлял собой набор замен, которые можно было осуществить, если в исходных данных обнаруживалась конкретная цепочка символов. Поскольку Ингве запатентовал свой код, то тогда группа разработчиков из AT & Bell Telephone Laboratories решили создать свой собственный язык, таким образом и появился язык SNOBOL.
Если язык LIPS создавался как язык обработки списков для универсальных приложений, Prolog стал специализированным языком с основанными на понятиях математической логики структурами управления и стратегией реализации.
В целях повышения эффективности выполняемых программ использование языка ассемблера в системной области продолжалось достаточно долго даже после того, как для приложений в других областях стали использоваться языки высокого уровня. Многие языки системного программирования, такие как CPL, BCPL так и не нашли широкого применения. Все изменилось с появлением языка C. С развитием в 70-е года конкурентоспособной среды UNIX, написанной в основном на языке C, была доказана эффективность использования языков высокого уровня и в системной области.
- Старые (но не умершие!)
Fortran, Cobol, PL/I, Basic, Pascal, Ada,Lisp,...
- Мейнстримные
C, С++, Java, C#, JavaScript, Python, Ruby, PHP, ...
- Новые и будущие
Go, Swift, Hack, Rust, Kotlin, Scala...
- Нишевые
D, Clojure, OCaml, Haskell, .
1.2 Роль и значения языков программирования
И так, в чем же роль и значения языков программирования в общем. Если говорить простыми словами, то думаю понятно, что компьютеры не понимают язык людей, а язык компьютеров труден для человека. Так вот, языки программирования – это компромисс между людьми и компьютерами.
Язык программирования предназначен для написания компьютерных программ, которые представляют собой набор правил, позволяющих компьютеру выполнить тот или иной вычислительный процесс, организовать управление различными объектами и так далее. Язык программирования отличается от естественных языков тем, что предназначен для взаимодействия человека с ЭВМ, в то время как естественные языки используются для общения людей между собой.
Связь между языком, за которым программист работает и программирует, и задачами с решениями, которые мы можем представлять в своем воображении, очень близка. По этой причине ограничивать свойства языка только ради исключения ошибок программиста, очень глупо и не представляет необходимости. Как и в случае с естественными языками, есть огромная польза быть, по крайней мере, двуязычным. Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их пропускают.
И так в чем же роль языков программирования?
Изначально языки программирования разрабатывались таким образом, чтобы обеспечить наиболее эффективное выполнение программ. Компьютеры, которые стоили миллионы долларов, определяли главную часть расходов, тогда как оплата работы программистов, работавших примерно 10000 долларов в год, составляла лишь малую их часть. Программа, созданная с помощью любого языка высокого уровня, должна была выполняться по крайне мере так же эффективно, как и программа, написанная на языке ассемблера, где кодирование осуществлялось вручную. Джон Бэкус, создавший для IBM язык Fortran в конце 50-х годов, десятью годами позже говорит:
«Честно говоря, у нас не было даже отдаленного представления о том, как эта штука (Fortran) будет работать…Поскольку большинство людей в то время совершенно не верили в возможности создания подобной вещи, мы просто делали упор на оптимизацию объектной программы и времени выполнения. Считалось, что машинные коды программ, созданные транслятором, будут совершенно не эффективны и их возможно будет использовать для большинства приложений.
Мы совершенно не ожидали получить в результате систему, абсолютно независимую от конкретной машины, на которой программа в конечном счете должна выполняться. Оказалось, что это на самом деле очень ценное свойство, но поначалу мы об этом действительно не думали.
Мы никак не организовывали нашу деятельность. Каждую часть программы писали один-два человека, которые, за очень большим исключением, были истинными мастерами своего дела, и все вырастало в большой неразберихе…Когда Fortran уже начал распространяться мы столкнулись с тем фактом, что не все из 25000 его инструкций правильно работают и что возникают проблемы, которые можно выявить только после длительного использования.»