Введение в языки программирования

Содержание

Слайд 2

Что такое язык программирования формальный язык, предназначенный для записи компьютерных программ

Что такое язык программирования

формальный язык, предназначенный для записи компьютерных программ
Набор
- лексических


- синтаксических
- семантических
правил
Слайд 3

Классификация Языки низкого и высокого уровня Безопасные и небезопасные языки Компилируемые

Классификация

Языки низкого и высокого уровня
Безопасные и небезопасные языки
Компилируемые и интерпретируемые языки
Особые

категории языков
Слайд 4

Низкий уровень Ограничения на абстракции данных, сильная статическая типизация, отсутствие промежуточной

Низкий уровень

Ограничения на абстракции данных, сильная статическая типизация, отсутствие промежуточной среды

выполнения, прямой доступ к памяти.
Примеры: C, C++, Assembler (язык Ассемблера)
Слайд 5

Средний уровень Фокус на абстракциях, сильная статическая типизация, среда выполнения, ограничения

Средний уровень

Фокус на абстракциях, сильная статическая типизация, среда выполнения, ограничения на

прямой доступ к памяти.
Примеры: Java, C#.
Слайд 6

Высокий уровень Сильное абстрагирование, динамическая и/или слабая типизация, полностью независимое управление

Высокий уровень

Сильное абстрагирование, динамическая и/или слабая типизация, полностью независимое управление памятью

и/или наличие среды выполнения.
Примеры: Python, Ruby, JavaScript, Common Lisp.
Слайд 7

Парадигма программирования совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию) Декларативная Императивная

Парадигма программирования

совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход

к программированию)
Декларативная
Императивная
Слайд 8

По типизации Статическая и динамическая типизация Сильная и слабая типизация (также

По типизации

Статическая и динамическая типизация
Сильная и слабая типизация (также иногда говорят

строгая и нестрогая)
Явная и неявная типизация
Слайд 9

Статическая и динамическая типизация Статическая - конечные типы переменных и функций

Статическая и динамическая типизация

Статическая - конечные типы переменных и функций устанавливаются

на этапе компиляции.
В динамической - во время выполнения программы.
Статическая: C, Java, C#;
Динамическая: Python, JavaScript, Ruby.
Слайд 10

Сильная и слабая типизация Сильная типизация не позволяет смешивать в выражениях

Сильная и слабая типизация

Сильная типизация не позволяет смешивать в выражениях различные

типы и не выполняет автоматические неявные преобразования.
Языки со слабой типизацией выполняют множество неявных преобразований автоматически
Сильная: Java, Python, Haskell, Lisp;
Слабая: C, JavaScript, Visual Basic, PHP.
Слайд 11

Явная и неявная типизация Явно-типизированные языки отличаются тем, что тип новых

Явная и неявная типизация

Явно-типизированные языки отличаются тем, что тип новых переменных

/ функций / их аргументов нужно задавать явно.
Соответственно языки с неявной типизацией перекладывают эту задачу на компилятор / интерпретатор.
Явная: C++, D, C#
Неявная: PHP, Lua, JavaScript
Слайд 12

Python высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика

Python

высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и

читаемости кода
Система типов сильная, динамическая
Тип исполнения: интерпретируемый, компилируемый в байт-код
Мультипарадигмальный
Слайд 13

Достоинства встроенные структуры данных, словари, кортежи; простой и удобный синтаксис; большое

Достоинства

встроенные структуры данных, словари, кортежи;
простой и удобный синтаксис;
большое количество библиотек;
мощные интерфейсы

к конкретным ОС;
переносимость кода между платформами: автоматическую генерацию документации на модули и возможность написания самодокументированных программ;
поддержку процедурного, функционального и объектного стилей программирования; встроенную поддержку Unicode и большое количество национальных кодировок.
Слайд 14

Недостатки низкая скорость выполнения динамическая типизация (?)

Недостатки

низкая скорость выполнения
динамическая типизация (?)

Слайд 15

Области применения Разработка веб-приложений Анализ данных и машинное обучение Введение в

Области применения

Разработка веб-приложений
Анализ данных и машинное обучение
Введение в программирование
Быстрое

прототипирование идей в бизнесе за счёт обилия готовых библиотек, низкого порога вхождения в язык и высокой продуктивности программистов, пишущих на Python
Написание скриптов (сценариев) для автоматизации задач
Слайд 16

Синтаксис языка

Синтаксис языка