Компилируемость/интерпретируемость.
Компилируемые языки:
- Программа на компилируемом языке при помощи специальной программы компилятора преобразуется (компилируется) в набор инструкций для данного типа процессора (машинный код) и далее записывается в исполняемый файл, который может быть запущен на выполнение как отдельная программа. Другими словами, компилятор переводит программу с языка высокого уровня на низкоуровневый язык, понятный процессору сразу и целиком, создавая при этом отдельную программу Примерами компилируемых языков являются Pascal, C, C++, Rust, Go.
Интерпретируемые языки:
- Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) ее текст без предварительного перевода. При этом программа остается на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера — это интерпретатор машинного кода. Кратко говоря, интерпретатор переводит на машинный язык прямо во время исполнения программы. Примерами интерпретируемых языков являются PHP, Perl, Ruby, Python, JavaScript. К интерпретируемым языкам также можно отнести все скриптовые языки. Note: Java и C, находятся между компилируемыми и интерпретируемыми. А именно, программа компилируется не в машинный язык, а в машинно-независимый код низкого уровня, байт-код.
Заголовочные файлы и их подключение.
Чтобы подключить дополнительный функционал нужно написать директиву #include
Def Директивы в исходном файле сообщают препроцессору о выполнении определенных действий
В данном случае мы подключаем библиотеку iostream. В ней содержится функционал для работы с потоками ввода/вывода.
Компиляция.
Компилятор – это программа, которая переводит текст, написанный на языке программирования, в набор машинных кодов.
Компилятор - g++/clang/etc g++ main.cpp -o main Запуск ./main Чтобы указать стандарт g++ -std=c++20 main.cpp -o main
Переменные: объявление, использование, хранение.
Чтобы объявить переменную нужно сначала написать ее тип а затем имя:
int a;Переменную можно сразу определить:
int a = 0;Можно определить с помощью предыдущей переменной:
int c = a;Note Изначально при объявлении базового типа туда кладется "мусор"
Над переменными можно совершать разные арифметические (и не только) действия:
int a = 10; int b = 20; int c = a + b + (b / 2);Переменные можно выводить в поток
std::cout << a + b;
Работа с потоком ввода/вывода.
За поток ввода отвечает cin. Используется так:
#include <iostream> int main() { int age = 0; std::cout << "Type your age: \n"; std::cin >> age; std::cout << "Your age is " << age; }Для того чтобы что-то вывести в консоль нужно написать следующий код:std::cout << "again and" << " again";cout - объект созданный заранее. Он предоставляет интерфейс для записи чего-то в поток вывода вашей программы. Далее идет оператор << и после него то, что мы хотим вывести.
Статическая/динамическая типизация.
Def Статическая типизация: переменная, параметр подпрограммы, возвращаемое значение функции связывается с типом в момент объявления и тип не может быть изменён позже (переменная или параметр будут принимать, а функция — возвращать значения только этого типа).
Def Динамическая типизация: переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов.
Сильная и слабая типизация: https://ru.wikipedia.org/wiki/Сильная_и_слабая_типизация
Кратко: при слабой типизации тип можно например привести один к другому. При сильной нет.
Основные типы и операции над ними.