Файл: Обзор языков программирования высокого уровня (Понятие о языках программирования).pdf
Добавлен: 25.04.2023
Просмотров: 299
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. Теоретические основы языков программирования
1.1. Понятие о языках программирования
1.2. История создания языков программирования
Глава 2. Анализ языков программирования высокого уровня
2.1.Обзор самых популярных языков программирования высокого уровня
2.2. Пример языка высокого уровня на примере JavaScript
Глава 3. Использование JavaScript для разработки элементов сайта
Во-вторых, как следствие, низкий уровень языка вынуждает программиста мыслить не категориями предметной области, а в терминах ячеек памяти, индексных и базовых регистров, указателя стека и т.п. В случае нетривиальной задачи довольно трудно мыслить одновременно на нескольких уровнях абстракции.
В-третьих, язык ассемблера вследствие жесткой привязки к архитектуре определенного компьютера делает программы непереносимыми: переход на другой тип компьютеров делает непригодными все ранее разработанные программы, поскольку новый компьютер имеет другие мнемоники и формат команд, другие методы адресации аргументов и т.п. Кроме того, переучивание программистов на новую систему команд также потребует определенного времени, что делает переход на другую архитектуру еще более трудным.
FORTRAN был первым успешно реализованным языком программирования высокого уровня. Разрабатывался он во времена жесточайшего дефицита оперативной памяти, который ставил под сомнение саму возможность практической реализации компилятора какого-либо из языков высокого уровня (ЯВУ).
Это обстоятельство отложило свой отпечаток на облик языка: во главу угла ставилась высочайшая эффективность и компактность результирующего машинного кода, которые позволили языку постепенно завоевать популярность, несмотря на многочисленные нападки сторонников ассемблера.
Несмотря на отсутствие опыта (откуда же ему было взяться у разработчиков первого компилятора, когда даже теория компиляции еще не была разработана), эта задача была решена разработчиками блестяще: компилятор FORTRAN I для мэйнфреймов IBM удерживал рекорд по степени оптимизации кода в течение 20 лет! Хотя этому меньше удивляешься, узнав, что во главе разработки стоял гениальный Джон Бэкус, а в его команду входили Ш. Бест, Х. Геррик, П. Шеридан, Р. Натт, Р. Нельсон, И. Зиллер, Р. Голдберг, Л. Хейбт и Д. Сейр. Немалую роль сыграла и поддержка коллектива руководством IBM, даже несмотря на то, что проект потребовал куда больше ресурсов, чем первоначально планировалось.
Выиграв кровопролитнейшую битву с ассемблером, новый язык получил заслуженное признание как в среде ученых, так и у промышленников и военных. В частности, трудно переоценить его роль в компьютерном обеспечении космической программы.
В 1958 г. увидел свет FORTRAN II, в который были добавлены средства раздельной компиляции модулей, а также возможность связи с ассемблерным кодом. В том же году появился FORTRAN III, который, впрочем, так и не был выпущен для общего пользования. В этой версии можно было включать фрагменты ассемблерного кода прямо в исходный текст программы. Эффективность кода возросла еще больше, однако это сильно ударило по переносимости, поэтому от новшества решили все же отказаться.
Наконец, в 1961 г. был выпущен FORTRAN IV, который представлял собой рафинированный вариант FORTRAN II, лишенный некоторых аномалий и машинно-зависимых особенностей. Именно эта версия получила наибольшее распространение среди ученых и инженеров и служила им верой и правдой более 30 лет, будучи реализованной практически на всех мэйнфреймах, мини-ЭВМ и персональных компьютерах, с которыми мне когда-либо доводилось иметь дело.
С мая 1962 г. началась работа по стандартизации языка, результатом которой стал FORTRAN 66 - первый в мире стандарт на ЯВУ. Язык заслуженно получил очередной титул "первый".
Основные черты языка: программа состоит из главной программы и набора подпрограмм, компилируемых независимо и компонуемых перед загрузкой. Каждая подпрограмма имеет собственную отдельную область памяти для хранения переменных и кода. Кроме того, можно выделять общие (COMMON) области памяти, которые содержат переменные, доступные из разных подпрограмм. Обмен данными осуществляется через блоки COMMON, а также через формальные параметры подпрограмм, при этом передача параметров производится только по ссылке.
Из типов данных имеются числовые (целочисленные и с плавающей точкой), а также логический. Из структур скалярные переменные и статические массивы размерностью не более 3. Что характерно, имеется также встроенный тип для представления комплексных значений, для которого определен полный набор операций.
Поскольку основное назначение языка - математические вычисления, имеется богатый набор арифметических операций, математических функций, а также преобразований типов.
На этом эволюция языка-долгожителя не остановилась, и в 1990 г. увидел свет очередной стандарт, FORTRAN 90. Впрочем, он слишком опоздал со своим появлением, дав приличную фору по времени своим конкурентам, главным из которых явился, безусловно, C++. Несмотря на очевидные усовершенствования языка, FORTRAN 90 не получил такого ошеломляющего успеха, как его знаменитые предшественники, и удовольствовался весьма скромной нишей. Не прибавило ему популярности и появление следующего стандарта, FORTRAN 95. Новое поколение программистов ориентировано на C++, Java и C#, и старому доброму FORTRANу, увы, нечего им противопоставить[9].
Третье поколение языков программирования представляет Algol 60. Как и в большинстве других языков программирования, программа на Algolе состоит из главной программы и набора подпрограмм. При их построении используются блоки - наборы описаний и последовательности операторов, ограниченные "скобками" begin и end. Структуры данных, созданные внутри блока, локальны в его пределах и при выходе из блока уничтожаются. Таким образом можно управлять временем жизни данных и областью видимости их идентификаторов.
Четвертое поколение представлено языками поддержки сложных структур данных. Ярким примером можно назвать язык SQL.
Язык SQL был разработан в конце 70-х годов в компании IBM и был впервые реализован в реляционной СУБД IBM System R. В дальнейшем, благодаря своей элегантности, независимости от специфики компьютера и поддержке лидерами в области технологии реляционных баз данных, SQL стал и в обозримом будущем останется стандартом "де-факто" для всех реляционных систем обработки данных.
Следующее поколение – это языки искусственного интеллекта.
В 1977 году в Эдинбурге Уоррен и Перейра создали очень эффективный компилятор языка Пролог для ЭВМ DEC–10, который послужил прототипом для многих последующих реализаций Пролога. Что интересно, компилятор был написан на самом Прологе. Эта реализация Пролога, известная как "эдинбургская версия", фактически стала первым и единственным стандартом языка. В 1980 году Кларк и Маккейб в Великобритании разработали версию Пролога для персональных ЭВМ.
На сегодня существует довольно много реализаций Пролога. Наиболее известные из них следующие: BinProlog, AMZI-Prolog, Arity Prolog, CProlog, Micro Prolog, МПролог, Prolog-2, Quintus Prolog, SICTUS Prolog, Silogic Knowledge Workbench, Strawberry Prolog, SWI Prolog, UNSW Prolog и т. д.
В нашей стране были разработаны такие версии Пролога как Пролог-Д (Сергей Григорьев), Акторный Пролог (Алексей Морозов), а также Флэнг (А Манцивода, Вячеслав Петухин).
Следующее поколение – это языки нейронных сетей (самообучающиеся языки). Исследовательские работы в этой области начались в середине 80-х годов XX века.
Глава 2. Анализ языков программирования высокого уровня
2.1.Обзор самых популярных языков программирования высокого уровня
На первом месте стоит JavaScript.
JavaScript -динамический язык программирования, который в основном позволяет добавлять сайтам интерактивность. Многие советуют начинать изучать программирование именно с него.
Stack Overflow, популярный сайт, где программисты делятся своими навыками, каждый год проводит опрос среди программистов и составляет статистику – от зарплат до любимых технологий. В январе 2018 года сайт опросил более чем 100 тысяч разработчиков.
График самых популярных языков программирования, согласно Stack Overflow:
JavaScript возглавляет этот список уже шестой год подряд.
GitHub, крупнейший веб-сервис для хостинга IT-проектов, также называет JavaScript самым популярным языком программирования.
Согласно опросу Stack Overflow, разработчики JavaScript зарабатывают около $55 тысяч в год. Программисты в США, использующие этот язык, зарабатывают около $98 тысяч в год.
По оценкам Indeed.com, популярного сайта для поиска работы, разработчик JavaScript в США в среднем зарабатывает около $110945 в год.
Java – язык программирования для создания кроссплатформенных приложений. Неважно, какую платформу вы хотите использовать для деплоя – компьютер, телефон, веб – Java подойдет вам в любом случае.
Индекс TIOBE, оценивающий популярность языков программирования, назвал Java самым популярным языком в июле 2018 года.
Согласно опросу Stack Overflow, популярность Java составляет 45,3% – язык занимает почетное второе место в их таблице (если не считать HTML, CSS, SQL – которые по сути не являются языками программирования).
Опрос показал, что в США разработчики Java зарабатывают $100 тысяч в год. Indeed.com дает похожие оценки – программист Java в США зарабатывает $100873 в год.
Python – мощный высокоуровневый язык программирования, набирающий большую популярность в 2018 году. Его используют для разных заданий – включая веб-разработку, машинное обучение и анализ данных.
38,8% юзеров Stack Overflow для своих проектов используют Python. Согласно опросу сайта, по популярности Python в 2018 обогнал C# – а в 2017 году он обогнал PHP.
На платформе GitHub Python разместился на втором месте в списке самых популярных языков программирования.
Стоит также упомянуть, что развитие ИИ, вероятно, способствует росту спроса на Python. Stack Overflow называет его «самым быстрорастущим языком программирования».
Согласно опросу Stack Overflow, разработчики Python зарабатывают в среднем $56 тысяч в год. В США, по оценкам Indeed.com, они получают $114811 в год.
Итог, JavaScript, Java и Python – самые востребованные языки программирования высокого уровня в 2018 году.
2.2. Пример языка высокого уровня на примере JavaScript
Рас самый востребованный и популярный язык является JavaScript, то и возьмем пример на этом языке.
JavaScript переменные являются "контейнерами", в которые вы можете загружать различную информацию, а позднее извлекать ее обратно. Каждая JavaScript переменная должна иметь собственное уникальное имя, которое может начинаться с латинской буквы или символа "_". Имя переменных в JavaScript не может начинаться с цифр. Так как JavaScript чувствителен к регистру, переменные с одинаковыми именами, написанными в разном регистре (например, var и VAR), будут являться разными переменными. Таким образом, переменная будет иметь примерный вид: «var a», где «а» это имя переменной.
Оператор if позволяет выполнить команду или команды только в том случае, когда какое-либо условие выполняется.
Рисунок 4. Пример использования оператора if
С помощью блока else можно добавить выполнение в том случае, когда условие НЕ выполнилось:
Рисунок 5. Пример использования оператора else
Можно добавлять блоки else if для проверки дополнительных условий в случае, когда предыдущие if не выполнились.
Рисунок 6. Пример использования оператора else if
Блоков else if может быть много. Тогда условия будут проверяться до тех пор, пока не найдётся первый else if, для которого условие вернёт true. Если ни одно из условий if и else if не будет истинно, то выполнится else.
Чтобы написать программу для начала необходимо скачать программу «Sublime Text 3» и сохранить файл под именем «Калькулятор.html». Теперь попробуем написать программу по типу калькулятора путем вывода сообщений.
Сначала зададим кодировку и внутри тега script напишем код. Выглядеть это будет так:
<meta charset='utf-8'>
<script>
</script>
Все, что будет находиться между открывающим и закрывающим тегом script, будет являться кодом.
Далее создадим две переменные. В одной переменной мы спросим, как зовут пользователя и назовем ее name. А в другой переменной, которую назовем what, мы поприветствуем и спросим, что он хочет сделать:
<meta charset='utf-8'>
<script>
var name = prompt('Как вас зовут?');
var what = +prompt('Привет, ' + name + '. Что вы хотите Получить? Цифра 1 - Произвидение; 2 - Сумма; 3 - Разность; 4 - Деление');
</script>
В данном случае мы поставили перед командой prompt знак «+». Этот знак означает, что в переменной будет храниться именно число, а не строка (символы). Это нужно для того, чтобы далее корректно оперировать числами. Далее попросим пользователя ввести два числа, которые ему нужно как-то рассчитать. Соответственно создаем еще две переменные, назовем их a и b, и не забываем про знак «+»: