5.88M

Prezentatsia_k_proektu

1.

Презентация
«Языки
программирования
высокого уровня»
Выполнил
Студент «КемГУ»
Группы «КБ-241»
Литвинов Артём
([email protected])
г. Кемерово, 2024.

2.

Понятие языка программирования
высокого уровня
Высокоуровневый язык программирования – язык программирования, где
используется синтаксис, максимально приближенный к естественным
языкам или иным понятным человеку семантическим системам (в
частности, математическим формулам). Для каждого такого языка
разработаны трансляторы, выполняющие две основные функции:
- Адаптацию написанной программы к архитектуре конкретной
платформы: у каждого языка высокого уровня для каждого процессора
создан свой транслятор;
- Перевод программы с языка, понятного человеку, в машинный код,
непосредственно распознаваемый процессором.
КБ-241; Литвинов Артём Олегович.
2

3.

История возникновения высокоуровневых
языков программирования
Исторически первым языком высокого уровня стал Plankalkül (в переводе с
немецкого «запланированные вычисления»), разработанный немецким
инженером Конрадом Цузе в 40-х годах для своего компьютера Z4.
Синтаксис
включал
в
основном
числа
и
символы
математических/логических действий, поддерживал операции назначения,
итерационные циклы, работу с числами с плавающей запятой и т.д.
Конрад
Цузе
Пример
работы
языка
Plankalkül.
3
КБ-241; Литвинов Артём Олегович.

4.

История возникновения высокоуровневых
языков программирования
Чуть позже, в середине 1950-х годов, в СССР был разработан первый
транслятор (компилятор) ПП-1 (Программирующая программа) и его
рабочая версия ПП-2 для ЭВМ «Стрела».
М. Р. Шура-Бура, А. А. Ляпунов, С. С. Камынин – разработчики первого в
СССР компилятора.
КБ-241; Литвинов Артём Олегович.
4

5.

История возникновения высокоуровневых
языков программирования
Настоящая популярность к языкам высокого уровня пришла в конце 50-х
годов прошлого века, когда в корпорации IBM под руководством
программиста Джона Бэкуса был создан первый язык программирования
высокого уровня Fortran и компилятор для него, используемый в
практической деятельности.
Команда IBM, занимавшаяся
разработкой
FORTRAN,
возглавлялась Джоном Бэкусом.
Пример кода на
Fortran
КБ-241; Литвинов Артём Олегович.
5

6.

История возникновения высокоуровневых
языков программирования
Параллельно с Фортран на Западе велась и разработка других
высокоуровневых языков, таких как C, Algol, LISP, Cobol и т.д. Многие из них
успешно применяются по сей день и/или стали основой для появления
других, более совершенных и функциональных языков программирования.
Язык
программирования С
Язык
программирования
Cobol
Язык программирования Algol
Язык программирования LISP
КБ-241; Литвинов Артём Олегович.
6

7.

Виды языков программирования высокого уровня
Сегодня разработано большое количество высокоуровневых ЯП. Их условно
можно разделить на три основные категории.
Императивные набор строго
последовательных
команд, выполняемых
процессором.
Декларативные - описывают
процессору не
последовательность команд,
а конечный результат их
выполнения.
КБ-241; Литвинов Артём Олегович.
Объектноориентированные оперируют
объектами, из
которых
составляются
четко
структурированны
е программы.
7

8.

Виды языков программирования высокого уровня:
императивные
Императивные языки имеют следующие характеристики:
- Данная парадигма предполагает описания вычислений в
инструкций, которые постепенно меняют состояние программы.
форме
- В языках низкого уровня, например в ассемблерах, состояниями могут
являться память, регистры и флаги. Инструкциями же выступают
команды, которые поддерживаются целевым процессором.
- В языках более высокого уровня, например в Си, состоянием является
исключительно память. Инструкции в таком случае могут быть более
сложными, а также приводить к выделению и высвобождению памяти по
мере своего функционирования.
КБ-241; Литвинов Артём Олегович.
8

9.

Виды языков программирования высокого уровня:
декларативные
Декларативный язык - парадигма программирования, в которой задается
спецификация решения задачи, то есть описывается конечный результат,
а не способ его достижения.
В качестве примеров
разметки HTML.
декларативных
языков
можно
привести
язык
При написании тегов в этом языке мы не задумываемся о том, как
элементы будут отрисовываться на странице, мы просто описываем, как
эта страница должна выглядеть.
КБ-241; Литвинов Артём Олегович.
9

10.

Виды языков программирования высокого уровня:
объектно-ориентированные
Основные принципы структурирования связаны с аспектами
базового понимания предметной задачи, которое требуется для
оптимального управления соответствующей моделью:
- Абстракция для выделения в моделируемом предмете важного для
решения конкретной задачи по предмету, в конечном счёте —
контекстное понимание предмета, формализуемое в виде класса;
- Инкапсуляция для быстрой и безопасной организации собственно
иерархической управляемости: чтобы было достаточно простой
команды «что делать», без одновременного уточнения как именно
делать, так как это уже другой уровень управления;
- Наследование для быстрой и безопасной организации родственных
понятий
10
КБ-241; Литвинов Артём Олегович.

11.

Преимущества языков программирования
высокого уровня
- Доступность: большинство языков высокого уровня программирования
используют семантику и синтаксис, напоминающие естественный язык
и даже заимствующие из них конкретные понятия, служебные символы и
т.д. (как правило, из английского). Некоторые ЯП этого класса основаны
на математических/логических символьных системах;
- Меньший размер программ. Описание набора одних и тех же команд на
языках программирования высокого уровня будет занимать меньше
строк (и, соответственно, объема памяти), чем на низкоуровневых ЯП
или на машинном коде. Это упрощает не только их написание, но и
хранение, а также отладку и тестирование — найти ошибки в понятной
и короткой семантической системе гораздо проще, чем в наборе нулей и
единиц.
КБ-241; Литвинов Артём Олегович.
11

12.

Недостатки языков программирования
высокого уровня
- Ограниченная переносимость ПО: хотя заявлено, что софт,
написанный на таких языках, является кроссплатформенным, это
правило работает не со всеми программами. В основном с теми,
которые работают с математическими вычислениями или
обработкой данных.
- Медленная работа: это основной недостаток высокоуровневых
языков программирования. Дело в том, что программетранслятору требуется определенное время, чтобы перевести
программу с языка, понятного человеку, в машинный код. И чем
выше уровень абстракции этого ЯП, тем больше времени
занимает процесс.
КБ-241; Литвинов Артём Олегович.
12

13.

Применение языков программирования
высокого уровня
- компьютерные игры (движки, на основе которых они работают);
- мультимедийные приложения — программы для просмотра
изображений, прослушивания аудио- и просмотра видеофайлов;
- профессиональное
ПО
для
создания
и
редактирования
изображений (графические редакторы), анимаций, видеороликов
(видеоредакторы), музыки и другого медиаконтента;
- операционные системы — в частности, Linux и Microsoft Windows, а
также различные системные приложения (например, фреймворки);
- приложения для обработки больших массивов данных и сложных
научных и математических вычислений.
13
КБ-241; Литвинов Артём Олегович.

14.

Популярность высокоуровневых
языков программирования в наше
время
Python
C++
Java
C
C#
JavaScript
Visual Basic
Go
SQL
Fortran
20,17%
10,75%
9,45%
8,89%
6,08%
3,92%
2,7%
2,35%
1,94%
1,78%
- Один из прародителей всех языков программирования, C, в этом
месяце опустился на одну позицию в индексе TIOBE. В настоящее
время C находится на 4-й позиции, что является его самой низкой
позицией с момента запуска индекса TIOBE в 2001 году.
- Теперь, когда встраиваемые системы имеют тенденцию к росту
функциональности и, следовательно, размера кода, и поскольку все
больше и больше встраиваемых компиляторов имеют хорошую
поддержку C++, существует тенденция перехода с C на C++.
14
КБ-241; Литвинов Артём Олегович.

15.

Почему программисты выбирают
Python?
1. Простота и читаемость: синтаксис Python интуитивно понятен, что
делает его доступным для новичков. Код выглядит более чисто и легко
читается.
2. Богатая экосистема библиотек: Python имеет множество библиотек
и фреймворков для различных задач, включая научные вычисления (NumPy,
SciPy), веб-разработку (Django, Flask), анализ данных (Pandas), машинное
обучение (TensorFlow, scikit-learn) и многие другие.
3. Широкое сообщество: большое и активное сообщество
разработчиков обеспечивает поддержку, доступ к ресурсам и
множество учебных материалов.
4. Многофункциональность: Python можно использовать в самых разных
областях: от веб-разработки до научных исследований и
15
автоматизации задач.
КБ-241; Литвинов Артём Олегович.

16.

Но какой же высокоуровневый язык изучить
первым?
C/C++:
С – один из старейших языков программирования, на котором драйверы
с высокой производительностью. Также он используется для ОС, ПО. Но
любому программисту будет тяжело выучить этот язык, поскольку он
не похож на остальные, и многое придётся писать с нуля. С стоит
изучать первым, чтобы понять принцип действия других языков. После
его изучения программист будет легко понимать остальные.
С++ относится к семейству С и является кроссплатформенным. На нём
создают десктопные приложения, драйверы и операционные системы. У
языка высокие производительность и скорость, поэтому он
используется для создания компьютерных игр. Самый популярный
движок Unreal Engine написан на нём.
16
КБ-241; Литвинов Артём Олегович.

17.

Сходства между С и C++
- Оба языка используют один и тот же базовый синтаксис и имеют
похожий синтаксис. Большинство операторов и ключевых слов в C
также встречаются в C++ и выполняют те же функции;
- C и C++ имеют схожую структуру кода;
- Оба имеют одинаковую компиляцию;
- Оба имеют элементарную модель памяти, которая очень похожа на
аппаратное обеспечение;
- Оба языка используют одни и те же концепции стека, кучи, области
действия файла и статических переменных.
17
КБ-241; Литвинов Артём Олегович.

18.

Различия между С и C++
- Концепции классов и объектов поддерживаются в C++, объектноориентированном языке программирования, тогда как C,
структурный язык программирования, их не поддерживает.
- Язык C не может выполнять код C++, хотя C++ является
надмножеством C, в то время как C++ может выполнять 99 процентов
кода C.
- C++ поддерживает инкапсуляцию, полиморфизм и наследование,
поскольку является объектно-ориентированным языком
программирования, тогда как C не поддерживает эти концепции, что
означает, что C не поддерживает объектно-ориентированное
программирование.
- Данные и функции в процедурном языке программирования C
разделены, тогда как в C++ данные и операции объединены в один
объект.
КБ-241; Литвинов Артём Олегович.
18

19.

Литература для изучения С / С++
- «Язык программирования Си», Деннис Ритчи, Брайан Керниган;
- «Learn C The Hard Way», Зед Шоу;
- «Язык Си в примерах»;
- «Using C on the UNIX System», Дэвид А. Карри;
- «Язык программирования С++»: Бьерн Страуструп;
- «Эффективный и современный С++: 42 рекомендации по использованию
C++11 и C++14»: Скотт Мейерс;
- «Язык программирования C++. Краткий курс»: Бьерн Страуструп;
- «Современный С++. Безопасное использование»: Джон Лакос.
19
КБ-241; Литвинов Артём Олегович.

20.

Об авторе
Литвинов
Артём
@alskdkfjgh
bio
@abnsfqq
zzz
@qqewtyre
КБ-241; Литвинов Артём Олегович.
20

21.

Спасибо за
внимание!
21
КБ-241; Литвинов Артём Олегович.
English     Русский Правила