Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Язык и система программирования – понятие, сущность).pdf
Добавлен: 28.03.2023
Просмотров: 310
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.1. Классификация по поддерживаемым методологиям
2.2. Классификация по принадлежности к семействам
2.3. Классификация по ориентации на предметные области
2.4. Классификация по степени абстракции от аппаратуры
2.5. Классификации по истории языков программирования
ГЛАВА 3. СОВРЕМЕННЫЕ ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
Для определения места в рейтинге средних баллов курсов воспользуемся встроенной функцией РАНГ.
Для вставки даты нужно применить встроенную функцию ТДАТА.
4.3. Выбор ППП
Для осуществления поставленных задач используем ППП Microsoft Access и Microsoft Excel из стандартного пакета Microsoft Office. В ППП Microsoft Access мы запишем (создадим) базу данных (БД), затем в ППП Microsoft Excel, воспользовавшись функцией импорта данных, вставим таблицу, созданную в ППП Microsoft Access. Далее в ППП Microsoft Excel будем производить все необходимые действия и операции. После получения окончательных результатов создадим диаграмму, воспользовавшись встроенным мастером диаграмм.
ЗАКЛЮЧЕНИЕ
Итак, мы рассмотрели понятие языка программирования, рассказали об истории создания, обозначили основные вехи в истории развития языков программирования (см. Приложение) и дали краткую характеристику основных языков, используемых в программировании на современном этапе или явившихся их основой. Подводя итог исследования, хотелось бы сделать общий вывод отностительно процесса возникновения языков, а также оценить перспективы их дальнейшего развития.
Итак, языки неизбежно проходят определенный путь развития. Новорожденный язык обычно слаб: реализованы только основные идеи, но до коммерческого успеха еще далеко. Поэтому начинается процесс «доводки», вылавливания ошибок и прочее. Все знают, что работать с первой версией любой программы небезопасно. В процессе доработки возникают новые мысли, конкуренты выпускают что-то свеженькое, и их надо догонять. При этом, заимствуя что-то у соперников, авторы всячески пропагандируют собственную новизну. Каждый язык претендует на роль лучшего и единственного. Это его качество нужно поддерживать, расширяя его.
Умирают ли языки программирования? С одной стороны, несомненно, да. Пример тому - Algol, старые Basic и Pascal, Eiffel, Modula и Ada. И таких примеров очень много. Это естественно, поскольку появились гораздо лучшие современные средства разработки. С другой стороны, все не так уж просто. Кто мог недавно предсказать огромный спрос на программистов, владеющих COBOL? А произошла ведь простая вещь: «Проблема 2000» заставила переписать огромное количество программ, и оказалось, что масса приложений, созданных с помощью этого языка, до сих пор используется!
Некоторым языкам смерть не грозит еще долго причине того, что на них написано слишком много необходимого. Это, конечно же, Fortran (библиотек математических расчетов столько, что переделать все практически нереально) и C.
Некоторые языки, видоизменяясь, получают другие имена: Pascal — Delphi.
В теории массового обслуживания существует теорема Клейнрока о циклической эволюции структур систем массового обслуживания, которая в вольном изложении может звучать так: при увеличении коэффициента производительности системы ее структура последовательно организуется как монопольная, децентрализованная, сетевая и снова монопольная, но на более высоком уровне производительности. Если мы посмотрим на историю языков программирования, то заметим, что сначала языки были «монопольными», в строгом соответствии с фон-неймановской архитектурой. Один процессор — одна программа. Затем появляются попытки «децентрализировать» вычисления: параллельная обработка, суперкомпьютеры, вычислительные сети и т. д. Не все работы в этой области достигли больших успехов, в первую очередь из-за сложности исходных проблем. Например, «параллельные» языки до сих пор хорошо служат только для ограниченного круга задач и проблема эффективного распараллеливания произвольной программы, насколько я знаю, еще не решена. Вообще развитие «децентрализованных» технологий продолжается буквально и по сей день. К примеру, технология «клиент-сервер», на основе которой построены многие популярные сегодня приложения, довольно молода. Трехзвенная архитектура «клиент-сервер» только начинает развиваться, не говоря уж о N-звенной.
Интересную версию дальнейшего развития событий выдвигает Смирнов И. в статье «Как рождаются и умирают языки программирования». Он пишет, что в 1976 г. Станислав Лем опубликовал рассказ «Профессор А. Донда», в котором высказал идею эквивалентности не только массы и энергии, но и информации. Тогда при превышении некоторого критического количества аккумулированной («концентрированной») информации произойдет ее переход в материю: «везде, где плотность информации превышает миллион битов на кубический миллиметр, останется соответствующее количество протонов — и пустота». В рассказе Лема так и происходит, а глобальным следствием является то, что развитые и развивающиеся страны «меняются местами»: в постинформационную эпоху лучше приспособленными к выживанию оказываются африканские страны...
«Вероятно, в ближайшее время будут продолжать развиваться технологии распределенного программирования, пока сложность и непредсказуемость получающихся систем не превысит возможности интеллекта разработчиков» - считает И. Смирнов. «Затем прогрессивное человечество будет вынуждено перейти на новый уровень абстракций в программировании. По-видимому, произойдет тот же процесс, что и при разработке микропроцессоров: мыслить будем на уровне готовых блоков, надеясь на их непогрешимость. Визуальные средства программирования должны дойти до уровня детских. И чтобы программирование стало легким и приятным, снова воцарится «монопольная парадигма».
В заключение сформулируем основные проблемы и перспективы языков программирования.
Во-первых, следует отметить, что новые языки программирования будут появляться и дальше. Рано или поздно у нас возникнут кардинально новые мысли о программировании и, согласно гипотезе Хурфа-Сэпира, они потребуют новых языков.
Во-вторых, следует обратить внимание на грамотное воплощение идей, заложенных в языках. Идея может быть хорошей, даже отличной, но ее решение и воплощение в конкретном языке — неудачным и безобразным.
Некоторые выводы о распространении новых языков можно сделать на основе языка Java .
Продвижение языка Java происходило за счет мощной рекламы, а не из-за достоинств самого языка.
На широкое распространение в наше время могут претендовать только те языки, которые поддержаны крупными фирмами, а не те, которые являются лучшими.
Время распространения и становления языка программирования (для получивших известность языков) составляет в среднем от 3 до 10 лет. В случае Java язык получил широкое распространение за один год.
В-третьих, в условиях застоя в развитии языков программирования есть смысл тщательно проанализировать все полезные накопленные за это время идеи. Существуют попытки создания единой семантики современных языков программирования, в каком-то смысле опять приводящие к идее ";универсального"; языка.
В-четвертых, Интернет требует языковых средств и подходов, обеспечивающих правильное взаимодействие большого числа независимо разработанных программ.
В-пятых, использование структур и данных, которые раньше бы считались неприемлемыми из-за их неэффективности, сейчас вполне допустимо и может привести к новой организации языков.
ЛИТЕРАТУРА
- Delphi Программирование на языке высокого уровня Фаронов В. В. Питер 2004. - С. 352
- Гольденберг В.А. Введение в программирование. – М.: Харвест, 1997. С, 82
- Математический энциклопедический словарь М., «Советская энциклопедия», 1988
- Пратт Т. Языки програмирования. – М., 2002. – 688 с.
- Смирнов И. Как рождаются и умирают языки программирования //Hard'n'Soft 1999. - №12,
- Фаронов А.В. Delphi Програмирование на языке высокого уровня В. В. М., 2004. - 640 с.
- Флэнэген Д. ";JAVA in a nutsell";Издательство ";BHV"; 1997 г.
- Хигман В. Сравнительное изучение языков программирования. - M.: Мир, 1974 С. 13
- Wagner, J., The Search for Signs of Intelligent Life in the Universe, New York, NY: Harper and Row, 1986
- Основы алгоритмизации и программирования : учебное пособие / Г. Р. Кадырова. –Ульяновск : УлГТУ, 2014. с 21
- Белов П.М. Основы алгоритмизации в информационных системах: Учебн. Пособие.Спб.:СЗТУ, 2003. 85с
- Макаров В.Л. Программирование и основы алгоритмизации.: учебн. пособие.Спб., СЗТУ, 2003, -110с
- Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Издво Казанского национального исследовательского технического ун-та КАИ, 2013, 153 с.
- Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. –56 с.
- Семакин, И.Г. Основы алгоритмизации и программирования: Учебник / И.Г. Семакин. - М.: Academia, 2017. - 32 c.
- Серкова, Е.Г. Основы алгоритмизации и программирования: практикум / Е.Г. Серкова. - РнД: Феникс, 2019. - 189 c.
- Фризен, И.Г. Основы алгоритмизации и программирования (среда PascalABC.Net): Учебное пособие / И.Г. Фризен. - М.: Форум, 2018. - 784 c
- Голицына О.Л, Попов И.И. Основы алгоритмизации и программирования: Учеб. пособие. - М.: ФОРУМ: ИНФРА-М. 2004. - 432 с. - (серия «Профессиональное образование»).
- Касаткин В.Н. Информация, алгоритмы, ЭВМ. М., Просвещение, 1991
- Извозчиков В.А. Информатика в понятиях и терминах.
ПРИЛОЖЕНИЕ
Основные вехи в истории развития языков программирования
1949 Появление первого языка программирования Short Code, реально используемого на вычислительном устройстве; однако это «компилируемый вручную» язык
1951 Грейс Мюррей Хоппер начинает работу над первым компилятором (под названием A-0) с языка высокого уровня
1954 Джон Бэкус и его команда в IBM начинают разрабатывать Fortran
1956 - Первая конференция по искусственному интеллекту в Дартмурском колледже Нью-Хэмпшира
- Закончена разработка языка Fortran
1958 Выход Fortran II: поддержка подпрограмм и связь с ассемблером; Джоном МакКарти в Массачусетском технологическом институте разрабатывается язык LISP; Выходит спецификация Algol — первого структурного процедурного языка
1959 Грейс Мюррей Хоппер и Codasyl разрабатывают COBOL; Выходит LISP 1.5
1960 Спецификация Algol-60
1962 В IBM Кеннет Иверсон разрабатывает язык APL (первая публикация описания языка); выходит Fortran IV; начата работа над языком программирования SNOBOL (StriNg-Oriented symBOlic Language)
1964 IBM выпускает язык PL/1; дартмурском колледже Томас Куртц и Джон Кемени разрабатывают язык Basic, который не применялся на микрокомпьютерах до 1975 года; выходит APL/360
1965 Появление SNOBOL-3
1966 Выходит Fortran-66; начало работ над языком LOGO; появление LISP-2
1967 Начало разработки языка Pascal Никлаусом Виртом на базе языка Algol; выходит SNOBOL-4
1968 Появление Algol-68 вызывает решительный протест Никлауса Вирта и Чарьза Хоара — членов комитета по спецификации языка; официальная ANSI-спецификация COBOL; сеймур Паперт в МТИ заканчивает разрабатку языка LOGO
1970 Разрабатывается язык программирования Forth; начало работ над языком программирования Prolog; в Xerox PARC начата разработка языка SmallTalk
1971 Завершена разработка Pascal
1972 В Bell Laboratories Деннисом Ричи разработан язык программирования C.; выходит SmallTalk-72; в университете Luminy-Marseilles во Франции Аланом Колмера разработан часто использующийся для задач искусственного интеллекта язык Prolog
1974 Выходит SmallTalk-74
1975 Билл Гейтс и Пол Аллен пишут Basic-интерпретатор для первого персонального компьютера Altair
1976 Выходит SmallTalk-76
1977 Никлаус Вирт начинает работу над языком Modula
1978 Выход ANSI-стандарта языка Fortran-77
1979 В Honeywell Джин Ичбиах и его команда представили язык программирования Ada
1980 Выходит Modula-2; бьярнe Страуструп добавляет к C объектно-ориентированные расширения4 выход SmallTalk-80
1982 Появление ISO-стандарта Pascal
1983 Выход языка ADA; фирма Borland выпускает Turbo Pascal
1984 Microsoft совместно с Digital Research выпускают первый компилятор с C для микрокомпьютеров