-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcpython.py
More file actions
122 lines (121 loc) · 6.97 KB
/
cpython.py
File metadata and controls
122 lines (121 loc) · 6.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
"""[TASK] Cpython #4."""
# 1. Что такое CPython и чем он отличается от Python?
#
# CPython — это стандартная и самая распространенная реализация языка Python на языке C. Он так же является интерпретатором.
#
# Python — это язык программирования со своими правилами. А CPython программа для реализации языка программирования.
#
# 3. Сколько существует реализаций Python, и какая из них самая популярная?
#
# Самых популярных всего 7 (если брать из книги): IPython, CPython, IronPython, Jython, PyPy, PythonNet, Stackless Python.
#
# Самая популярная CPython.
#
# 4. На каком языке написан CPython?
#
# На языке С
#
# 5. (опционально) Кто создал CPython?
#
# Guido van Rossum
#
# 6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык?
#
# Ну если о говорить о CPython. То его ядро написано С и он вызывает инструкции из С. Поэтому он быстрый
#
# 7. Напишите путь к Интерпретатору CPython на вашем компьютере
#
# C:\Users\Иван Куликов\AppData\Local\Programs\Python\Python313
#
# 8. Что содержится в папке include в CPython?
#
# файлы на языке C, необходимые для работы интерпретатора и вызова инструкций
#
# 9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб
#
# https://github.com/python/cpython
#
# 10. (опционально) Как работает интерпретатор CPython при выполнении кода?
#
# Этап 1: Лексический анализ (Lexing)
# Исходный код разбивается на "слова" языка - токены.
#
# Этап 2: Синтаксический анализ (Parsing)
# Токены преобразуются в Абстрактное Синтаксическое Дерево (AST).
#
# Этап 3: Компиляция в байт-код
# AST компилируется в байт-код - низкоуровневые инструкции для виртуальной машины Python.
#
# Этап 4: Выполнение байт-кода виртуальной машиной
# Виртуальная машина CPython - это большой цикл, который последовательно выполняет инструкции байт-кода.
#
# 11. Какая команда используется для запуска файла с помощью CPython?
#
# Для запуску через командную строку нужно сначала вставить пусть к интерпретатору а затем через пробел путь к желанному файлу для выполнения.
#
# 12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему?
#
# Да можно, так как интерпретатор воспринимает любой текст и если данный текст или информация содержат валидный Python-код то он без проблем выполнит его
#
# 13. Как указать путь к интерпретатору и файлу для выполнения кода?
#
# Можно скопировать адресное окно самой папки сверху либо нажать на файл правой кнопкой мыши -> свойства -> будет строчка расположения
#
# 14. Чем PyPy отличается от CPython?
#
# Работает в 10 раз быстрее
#
# 15. Почему PyPy не может использоваться для всех проектов на Python?
#
# Он является достаточно новой реализацией Python поэтому совместим не со всеми проектами на Python
#
# 16. Где можно скачать PyPy?
#
# https://pypy.org/download.html
#
# 17. Как установить PyPy после скачивания?
#
# Распаковать архив
#
# 18. Как запустить файл с помощью PyPy?
#
# Для запуску через командную строку нужно сначала вставить пусть к интерпретатору PyPy а затем через пробел путь к желанному файлу для выполнения.
#
# 19. Почему PyPy выполняет код быстрее, чем CPython?
#
# PyPy быстрее CPython благодаря принципиально разной архитектуре выполнения кода.
# Ключевое отличие: PyPy использует Just-In-Time (JIT) компилятор, в то время как CPython работает как интерпретатор байт-кода.
#
# Если простыми словами JIT компилятор находит горячии участки кода (которые часто выполняются) и после некоторых вызовов сразу обращается к мишиному коду данного участка.
#
# Практические задания
# Задание 1: Поиск и установка CPython
# C:\Users\Иван Куликов>python --version
# Python 3.13.8
#
# Задание 2: Исследование структуры CPython
# Количество файлов: 77
#
# Задание 3: Запуск файла с помощью CPython
# Для txt
# C:\Users\Иван Куликов>python D:\repo\Data-Science-For-Beginners-from-scratch-SENATOROV\python\example.txt
# Hello from CPython!
#
# Для py
# C:\Users\Иван Куликов>python D:\repo\Data-Science-For-Beginners-from-scratch-SENATOROV\python\example.py
# Hello from CPython!
#
# Задание 4: Установка и использование PyPy
# C:\Users\Иван Куликов>pypy D:\repo\Data-Science-For-Beginners-from-scratch-SENATOROV\python\example_pypy.py
# Hello from pypy!
#
# Задание 5: Сравнение производительности CPython и PyPy
# C:\Users\Иван Куликов>python D:\repo\Data-Science-For-Beginners-from-scratch-SENATOROV\python\performance_test.py
# Result: 49999995000000
# Execution time: 0.5878703594207764 seconds
#
# C:\Users\Иван Куликов>pypy D:\repo\Data-Science-For-Beginners-from-scratch-SENATOROV\python\performance_test.py
# Result: 49999995000000
# Execution time: 0.008245229721069336 seconds
#
# вывод быстрее в 71 раз