3.55M
Категория: ПрограммированиеПрограммирование

Системы программирования: основные понятия. Лекция 2: Современные системы программирования

1.

Системы программирования:
основные понятия.
Базовые понятия
технологии .NET Framework.
Лекция 2: Современные системы программирования.
Кафедра теоретической физики и теплотехники ФТФ
1
Ситкевич Анастасия Леонидовна

2.

Вопросы лекции
Кафедра теоретической физики и теплотехники ФТФ
2
Ситкевич Анастасия Леонидовна

3.

1. Современные системы
программирования
Кафедра теоретической физики и теплотехники ФТФ
3
Ситкевич Анастасия Леонидовна

4.

Современные системы программирования
Согласно ГОСТ 19781-90, система программирования (programming system) — система,
образуемая языком программирования, компиляторами или интерпретаторами программ,
представленных на этом языке, соответствующей документацией, а также вспомогательными
средствами для подготовки программ к форме, пригодной для выполнения.
Системой программирования будем называть комплекс программных средств,
предназначенных для кодирования, тестирования и отладки программного обеспечения.
Кафедра теоретической физики и теплотехники ФТФ
4
Ситкевич Анастасия Леонидовна

5.

состав современных систем программирования
• интегрированная среда разработчика программ;
• транслятор языка программирования;
• компоновщик или редактор связей;
• библиотеки стандартных программ (подпрограмм) и функций;
• вспомогательные программные средства — программы отладки;
• справочная система.
Кафедра теоретической физики и теплотехники ФТФ
5
Ситкевич Анастасия Леонидовна

6.

2. интегрированная среда
разработчика программ
Кафедра теоретической физики и теплотехники ФТФ
6
Ситкевич Анастасия Леонидовна

7.

IDE и редакторы кода
• IDE (Integrated Development Environment) и редактор кода – это виды
программного обеспечения, предназначенные для работы над
приложениями, их разработки и тестирования. Возможности этих
инструментов отличаются.
Как правило, IDE состоит из:
• самого текстового редактора для написания и редактирования кода;
• компилятора – инструмента, позволяющего перевести текст, написанный на
языке программирования, в набор машинных кодов;
• отладчика, проверяющего код и устраняющего в нем ошибки;
• инструментов для автоматизации сборки кода, ускоряющих процесс
разработки.
• Многие IDE позволяют настраивать дополнительные фреймворки и
библиотеки для расширения возможностей разработки.
7
Кафедра теоретической физики и теплотехники ФТФ
Ситкевич Анастасия Леонидовна

8.

Сравнение популярных IDE
Microsoft Visual Studio
• постоянно расширяющийся магазин
дополнений, предоставляющий
надстройки для расширения
возможностей взаимодействия с IDE;
• встроенная технология
автозавершения кода IntelliSense;
• возможности для командной работы:
управление доступами к проекту,
полностью настраиваемые параметры
редактора;
• мультиязычность;
• индивидуальная настройка рабочей
панели;
• есть поддержка split screen.
• отсутствие возможности работы на
Linux ОС;
• это достаточно тяжеловесная среда.
Если у вас нет необходимости
разрабатывать консольные
приложения, то можно рассмотреть
более подходящий редактор кода.
Кафедра теоретической физики и теплотехники ФТФ
8
Ситкевич Анастасия Леонидовна

9.

Microsoft Visual Studio
Кафедра теоретической физики и теплотехники ФТФ
9
Ситкевич Анастасия Леонидовна

10.

Сравнение популярных IDE
PyCharm
• автозавершение кода, автопоиск и
исправление ошибок в коде;
• поддержка сред для веб-разработки
Django, Flask, Google App Engine,
Pyramid и web2py;
• интеграция с системами контроля
версий;
• интеграция с Jupyter Notebook,
Anaconda и другими библиотеками;
• отладчик, профилировщик Python,
встроенные терминал и инструменты
баз данных.
• версия Community не поддерживает
многие инструменты, нет
профилировщика Python и поддержки
баз данных;
• отсутствует возможность оплаты
Professional версии в Беларуси.
Кафедра теоретической физики и теплотехники ФТФ
10
Ситкевич Анастасия Леонидовна

11.

PyCharm
Кафедра теоретической физики и теплотехники ФТФ
11
Ситкевич Анастасия Леонидовна

12.

Сравнение популярных IDE
IntelliJ IDEA
• автозавершение и исправление кода;
• мультиязычность;
• удобная рабочая среда, которая
интуитивно понимает ваши действия
и автоматически вызывает нужные
инструменты;
• интеграция с системами контроля
версий;
• анализ кода в реальном времени и
надежные рефакторинги.
• отсутствие в Community-версии
инструментов профилирования, баз
данных;
• отсутствует возможность удаленной
разработки;
• сложная платформа для начинающих
разработчиков.
Кафедра теоретической физики и теплотехники ФТФ
12
Ситкевич Анастасия Леонидовна

13.

IntelliJ IDEA
Кафедра теоретической физики и теплотехники ФТФ
13
Ситкевич Анастасия Леонидовна

14.

Сравнение популярных IDE
Spyder
• бесплатная интегрированная среда
для разработки;
• возможность просмотра значений
переменных;
• доступная функция анализа ошибок с
подсказками в случае нахождения
ошибок;
• автодополнение кода;
• кроссплатформенность, дает
возможность работать на Windows,
macOS, Linux.
• инструмент во многом предназначен
для работы с данными. Для других
задач подходит не так хорошо, как
другие IDE.
Кафедра теоретической физики и теплотехники ФТФ
14
Ситкевич Анастасия Леонидовна

15.

Spyder
Кафедра теоретической физики и теплотехники ФТФ
15
Ситкевич Анастасия Леонидовна

16.

Сравнение популярных IDE
Eclipse
• бесплатная опенсорс среда;
• мультиязычность;
• доступны расширение возможностей
и тонкая настройка за счет
дополнительных плагинов;
• вокруг IDE сформировано большое
комьюнити, помогающее с решением
возникающих проблем;
• настраиваемый интерфейс;
• возможность интеграции JUnit и
проведения оптимизации тестов.
• возможности Eclipse не такие
большие, как у Microsoft Visual Studio,
но она распространяется с открытым
исходным кодом, поэтому можно
настраивать под свои потребности;
• сложная IDE для разработчиковновичков.
Кафедра теоретической физики и теплотехники ФТФ
16
Ситкевич Анастасия Леонидовна

17.

Eclipse
Кафедра теоретической физики и теплотехники ФТФ
17
Ситкевич Анастасия Леонидовна

18.

Сравнение популярных IDE
NetBeans
• доступна возможность установки
пакетов для работы с другими
языками;
• умное автозавершение кода и
визуальный отладчик;
• простой и настраиваемый интерфейс
рабочего пространства;
• возможности совместной разработки
при работе в команде.
• большое потребление памяти.
Кафедра теоретической физики и теплотехники ФТФ
18
Ситкевич Анастасия Леонидовна

19.

NetBeans
Кафедра теоретической физики и теплотехники ФТФ
19
Ситкевич Анастасия Леонидовна

20.

Сравнение популярных редакторов кода
Visual Studio Code
• кроссплатформенность: поддержка на
Windows, macOS и Linux;
• встроенная технология
автодополнения кода IntelliSense;
• множество бесплатных расширений в
маркетплейсе;
• в Visual Studio Code доступно меньше
инструментов, чем в полноценной
IDE от Microsoft;
• отсутствует поддержка split screen.
• полностью бесплатный редактор.
Кафедра теоретической физики и теплотехники ФТФ
20
Ситкевич Анастасия Леонидовна

21.

Visual Studio Code
Кафедра теоретической физики и теплотехники ФТФ
21
Ситкевич Анастасия Леонидовна

22.

Сравнение популярных редакторов кода
Sublime Text
• большой выбор дополнений для
поддержки синтаксиса и
редактирования кода;
• навигация Goto Anything дает
возможность быстро получать доступ
к файлам;
• позволяет быстро перемещаться
между проектами с сохранением
изменений;
• множественное выделение позволяет
вносить изменения в строки кода
сразу в нескольких местах.
• для полного использования всех
функций необходимо приобрести
лицензии;
• отсутствует функция автоматической
отладки и боковая панель, как,
например, в Visual Studio Code.
Кафедра теоретической физики и теплотехники ФТФ
22
Ситкевич Анастасия Леонидовна

23.

Sublime Text
Кафедра теоретической физики и теплотехники ФТФ
23
Ситкевич Анастасия Леонидовна

24.

Сравнение популярных редакторов кода
Atom
• подходит для начинающих;
• редактор можно настроить под свои
требования;
• возможность установки новых
плагинов;
• сильная нагрузка на мощности из-за
встроенного браузера, внутри
которого постоянно выполняется
JavaScript-код.
• мультиязычность;
• интеграция с Node.js, включая запуск
веб-сервера прямо из редактора.
Кафедра теоретической физики и теплотехники ФТФ
24
Ситкевич Анастасия Леонидовна

25.

Atom
Кафедра теоретической физики и теплотехники ФТФ
25
Ситкевич Анастасия Леонидовна

26.

3. Трансляторы
Кафедра теоретической физики и теплотехники ФТФ
26
Ситкевич Анастасия Леонидовна

27.

Трансляторы: компилятор и интерпретатор
• Транслятор (англ. translator - переводчик) - это программа-переводчик.
Она преобразует программу, написанную на одном из языков высокого
уровня, в программу, состоящую из машинных команд.
• Компилятор (англ. compiler - составитель, собиратель) читает всю
программу целиком, делает ее перевод и создает законченный вариант
программы на машинном языке, который затем и выполняется.
• Интерпретатор (англ. interpreter - истолкователь, устный переводчик)
переводит и выполняет программу строка за строкой.
!!!
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и
изменять.
Кафедра теоретической физики и теплотехники ФТФ
27
Ситкевич Анастасия Леонидовна

28.

интерпретатор
типы
Обычный
Компилирующего
типа
Кафедра теоретической физики и теплотехники ФТФ
28
Ситкевич Анастасия Леонидовна

29.

интерпретатор
Кафедра теоретической физики и теплотехники ФТФ
29
Ситкевич Анастасия Леонидовна

30.

компилятор
Кафедра теоретической физики и теплотехники ФТФ
30
Ситкевич Анастасия Леонидовна

31.

Компилятор
Кафедра теоретической физики и теплотехники ФТФ
31
Ситкевич Анастасия Леонидовна

32.

Байт-код
Язык Java вообще применил гибридный метод – программа на самом
деле компилируется, но не в машинный код, а в специальный байт-код,
который выполняется в виртуальной машине. То есть интерпретатор Java
– это как бы отдельный компьютер внутри компьютера, который исполняет
программы в своих собственных машинных кодах.
Компилятору Java не нужно переводить программы в разные машинные
коды для разных систем – он переводит их всегда в один и тот же код для
своей собственной виртуальной машины, которая на всех системах
работает одинаково. Но так как этот код – не нативный, т.е. не "родной"
код для процессора, то он по-прежнему интерпретируется виртуальной
машиной, которая переводит его в нативный код. Но так как этот код уже
оптимизирован для интерпретации (он почти машинный, "полуфабрикат"),
то и интерпретатор работает гораздо быстрее.
Кафедра теоретической физики и теплотехники ФТФ
32
Ситкевич Анастасия Леонидовна

33.

различия компилятора и интерпретатора
преимущества
интерпретатор
компилятор
Простота отладки – интерпретатор позволяет довольно
легко устранять ошибки из скрипта. Ведь он выполняет
код по строкам, и остановится, если в проверяемой
строке ошибка, тем самым указав на нее.
Быстрота – пожалуй, самый основной плюс. Сначала код переводится
в понятный машине вид, а уже после ее можно выполнить. Также
прибавку к скорости дает тот факт, что перед исполнением вся
программа проходит проверку на ошибки, и соответственно,
программист не будет ждать пол часа, чтобы обнаружить
пропущенную запятую в середине программы.
Компактность – интерпретатор занимает намного
меньше места в памяти компьютера.
Надёжность – результат работы компилятора не зависит от исходного
скрипта, поэтому у неаккуратного пользователя будет меньше шансов
его испортить. Да и работа злоумышленников в таком случае
значительно затруднена.
Кроссплатформенность – после компиляции можно получить
выполняемую программу, например exe файл, распространение
которого между операционными системами не составит труда.
Кафедра теоретической физики и теплотехники ФТФ
33
Ситкевич Анастасия Леонидовна

34.

различия компилятора и интерпретатора
недостатки
интерпретатор
компилятор
Медлительность – из-за особенностей своей работы,
интерпретатор значительно уступает по скорости
обработки кода другим трансляторам.
Объем — во время компиляции переводится вся программа,
поэтому выходной файл выходит большим.
Привязанность – в то время как компилятор создает
рабочую программу, интерпретатор лишь выполняет ее,
поэтому каждый раз эту операцию нужно выполнять по
новой, поэтому передавать интерпретируемый скрипт
между компьютерами без подходящего интерпретатора
не выйдет.
Точность – для того, чтобы компилировать программу, в ней
не должно быть ошибок, что может быть проблематично, если
вы хотите проверить только ее часть.
Кафедра теоретической физики и теплотехники ФТФ
34
Ситкевич Анастасия Леонидовна

35.

Компилятор и интерпретатор отличия
интерпретатор
компилятор
Выполняет код
Переводит скрипт и создает выполняемый файл
Работает по строкам
Работает со всей программой
Переводит и выполняет сразу
Сначала транслирует, а потом выполняет
Хорошо подходит для отладки и удаления недочетов
Нахождение ошибок и багов менее эффективно
Занимает мало места
Выходная программа более объемна
Для работы с ним подойдёт более слабое железо
Требователен к ресурсам компьютера
Кроссплатформенность ограниченна
Позволяет запускать программы на разных машинах
Выполнять трансляцию нужно каждый раз
Переводит программу один раз, после чего ее можно запускать
постоянно
Выводит сообщение об ошибке сразу после ее обнаружения
Отчёт можно получить только в конце компиляции
Можно выполнить часть программы, до обнаружения ошибки
Необходима полностью рабочая программа
Кафедра теоретической физики и теплотехники ФТФ
35
Ситкевич Анастасия Леонидовна

36.

Сходства
• Интерпретатор и компилятор производят трансляцию кода,
служат для его выполнения и понимания машиной;
• Оба типа переводчиков помогают в отладке.
Интерпретируемые:
• Python
• Ruby
• PHP
• Lisp
• JavaScript
• Perl
• BASIC
Компилируемые:
• C
• C++
• C#
• Delphi
• Go
• Pascal
• Rust
Компилируемые в байт код:
• Java
• Scala
• Kotlin
• Groovy
Кафедра теоретической физики и теплотехники ФТФ
36
Ситкевич Анастасия Леонидовна

37.

4. Компоновщик, отладчик,
загрузчик
Кафедра теоретической физики и теплотехники ФТФ
37
Ситкевич Анастасия Леонидовна

38.

компоновщик
• Компоновщик (также редактор связей, англ.
linker, link editor) — программа, которая
производит компоновку — принимает на вход
один или несколько объектных модулей и
собирает по ним исполняемый модуль.
• Загрузочный модуль (объектный файл) может
быть помещен операционной системой в
оперативную память и выполнен.
Кафедра теоретической физики и теплотехники ФТФ
38
Ситкевич Анастасия Леонидовна

39.

загрузчик
• Загрузчик - системная обрабатывающая программа.
• Загрузчик помещает находящиеся в его входном наборе данных объектные и загрузочные
модули в оперативную память, объединяет их в единую программу, корректирует
перемещаемые адресные константы с учетом фактического адреса загрузки и передает
управление в точку входа созданной программы.
При запуске новой программы загрузчик должен:
• Считать данные из запускаемого файла.
• Если необходимо — загрузить в память недостающие динамические библиотеки.
• Заменить в коде новой программы относительные адреса и символические ссылки на
точные, с учётом текущего размещения в памяти, то есть выполнить связывание
адресов (англ. Relocation).
• Создать в памяти образ нового процесса и запланировать его к исполнению.
Кафедра теоретической физики и теплотехники ФТФ
39
Ситкевич Анастасия Леонидовна

40.

отладчик
• Отладчик - системная программа, которая позволяет управлять процессом
исполнения пользовательской программы, является инструментом для
поиска и исправления ошибок в программе.
пошаговое выполнение программы (режим
трассировки) с отображением результатов,
остановка в заранее определенных точках,
Базовый набор функций
отладчика
возможность остановки в некотором месте
программы при выполнении некоторого условия;
появление
интегрированных сред
разработки
появление возможностей
аппаратной поддержки
средств отладки во многих
вычислительных системах
изображение и изменение значений переменных.
Кафедра теоретической физики и теплотехники ФТФ
40
Ситкевич Анастасия Леонидовна

41.

Спасибо за внимание!
Кафедра теоретической физики и теплотехники ФТФ
41
Ситкевич Анастасия Леонидовна
English     Русский Правила