1_CPP_and_Java

Содержание

Слайд 2

Разнообразие языков

C/C++
Java/Kotlin
Python
JavaScript
Assembly Languages
Ruby
Groovy
CMake
Lua
Bash

Индекс TIOBE
C.
Java.
Python.
C++.
C#.
Visual Basic.
JavaScript.
Assembly Language.
PHP.
SQL.
Classic Visual Basic.
Delphi/Object Pascal.
Ruby.
Go.
Swift.
R.
Groovy.
Perl.
MATLAB.
Fortran.

Разнообразие языков C/C++ Java/Kotlin Python JavaScript Assembly Languages Ruby Groovy CMake Lua

Слайд 3

На каких языках вы писали?

Какой язык программирования лучший?

Некорректный вопрос!

На каких языках вы писали? Какой язык программирования лучший? Некорректный вопрос!

Слайд 4

Классификация языков

Компилируемые
Интерпретируемые
Транслируемые (компилируемые до байткода)*

*Формально, такие языки, как Java, могут относится к

Классификация языков Компилируемые Интерпретируемые Транслируемые (компилируемые до байткода)* *Формально, такие языки, как
компилируемым или интерпретируемым языкам.
Поэтому мы вводим определения, которыми будем пользоваться

Слайд 5

Типизация языков

Динамически типизируемые
Статически типизируемые

Статически – связь переменной с типом в момент объявления

Типизация языков Динамически типизируемые Статически типизируемые Статически – связь переменной с типом
переменной. Динамически – связь переменной с типом в момент присвоения значения.

Слайд 6

Почему бы не писать все на питоне?

Легко разобраться с типами
Нет проблем с

Почему бы не писать все на питоне? Легко разобраться с типами Нет
указателями
Портируемый и не зависит от системы
Интуитивно понятный синтаксис
Множество библиотек
Очень легко реализовать любую логику
Все сразу работает

НО:

Требует наличие интерпретатора
ОЧЕНЬ медленный интерпретатор
Не рассчитан под высокие нагрузки

Слайд 7

Роль языков

Операционная система

Драйвер для железяки

Приложение для смартфона

Парсинг строчек из файла

Высокопроизводительная игра

Не требовательная

Роль языков Операционная система Драйвер для железяки Приложение для смартфона Парсинг строчек
игра

Интерпретатор питона

Решение сложного уравнения

Сложная бизнес-модель

Слайд 8

Немного об интерпретаторе и VM

Интерпретатор распарсил язык и получил байткод
Какая оценочная потеря

Немного об интерпретаторе и VM Интерпретатор распарсил язык и получил байткод Какая
производительности?

Ассемблер программы

Процессор

Программа
C/C++

Процессор

Ассемблер VM

Код VM
C++

Байткод программы

Программа
Java

Слайд 9

C++ или Java?

Что быстрее в общем случае для приложений?

Java??

C++ или Java? Что быстрее в общем случае для приложений? Java??

Слайд 10

C++ и Java

Процессор

JIT компиляция

Куда делась огромная разница между интерпретируемым кодом и

C++ и Java Процессор JIT компиляция Куда делась огромная разница между интерпретируемым
нативным?

Нативный код

VM профилирует работу кода во время исполнения и компилирует наиболее часто исполняемые (горячие) блоки

Слайд 11

C++ и Java

За счет чего Java может быть быстрее С++?

Автоматическое управление

C++ и Java За счет чего Java может быть быстрее С++? Автоматическое
памятью и оптимизации времени исполнения!

Слайд 12

Где используется Java

https://cs.android.com/android/platform/superproject/+/master:art/

Во второй половине курса мы рассмотрим работу некоторых виртуальных машин,

Где используется Java https://cs.android.com/android/platform/superproject/+/master:art/ Во второй половине курса мы рассмотрим работу некоторых
а также будем писать свою

Какая мотивация использовать Java как основной язык для разработки приложений и несистемной части прошивки Android?

Имя файла: 1_CPP_and_Java.pptx
Количество просмотров: 28
Количество скачиваний: 0