#HEX • IT – Telegram
#HEX • IT
372 subscribers
502 photos
104 videos
64 files
478 links
Channel by @alexeev_dev.

Авторский блог.

IT, статьи и другая информация.
Download Telegram
Абстрактное синтаксическое дерево (AST) в Python — это древовидное представление структуры фрагмента кода. Каждый узел в дереве представляет конструкцию программирования, такую как переменная, функция или оператор потока управления.

Некоторые примеры использования AST:

Линтеры и форматеры кода. Инструменты вроде pylint и Black используют AST для анализа и соблюдения стандартов кодирования и рекомендаций по стилю.
Оптимизация кода. Анализируя и изменяя AST, можно выполнять различные оптимизации кода, например, сворачивать константы, удалять мёртвый код и встраивать функции.
Генерация кода. AST можно использовать для генерации кода из спецификаций высокого уровня, таких как специальные языки или графические среды программирования.
Метапрограммирование. Манипуляции с AST позволяют реализовывать продвинутые методы программирования, такие как декораторы, макросы или переписывание кода.
👍2
Пример создания AST из скрипта на Python:

import ast
code = "x = 5 + 3"
tree = ast.parse(code)
print(tree)

Пример вывода AST для простой программы Python:

import ast
my_tree = ast.parse("3 + 4*x")
print(ast.dump(my_tree))

Пример скрипта для оптимизации кода:

class StringOptimizer(ast.NodeTransformer):
def visit_BinOp(self, node):
# Оптимизация конкатенации строк
if isinstance(node.op, ast.Add):
if isinstance(node.left, ast.Constant) and isinstance(node.right, ast.Constant):
if isinstance(node.left.value, str) and isinstance(node.right.value, str):
return ast.Constant(value=node.left.value + node.right.value)
return node

Этот оптимизатор находит конкатенацию строковых литералов и объединяет их на этапе компиляции, что улучшает производительность.

Для тех, кто хочет глубже погрузиться в тему, рекомендую изучить следующие аспекты:

- Работа с типами данных и аннотациями через AST
- Создание собственных декораторов с помощью трансформации AST
- Оптимизация циклов и условных конструкций
- Анализ потока данных в программе
👍5
На хабре появились реакции!
👍73🤣22
Channel photo updated
Создал свой сайт портфолио - https://alexeev-prog-personalsite-3cd5.twc1.net/
42
Ближайшие статьи:

написаны, ждут публикации: роадмап DevOps инженера, создание веб Фреймворка на python
в процессе написания: интеграция C-расширений в python-приложения, как устроен BIOS и загрузчики ОС
👍32🔥1
Вы не против, если я открою небольшой новогодний сбор на благо канала?

👍 - не против
👎 - против
👍81
#HEX • IT
Вы не против, если я открою небольшой новогодний сбор на благо канала? 👍 - не против 👎 - против
Приятно что вы не против!

Обязуюсь находить качественный контент и писать качественные статьи.
👍1🔥1
Новогодний Сбор На Благо Канала

Так как канал растет, а моя аппаратура уже не растет, нужно вложить средства в канал. Я работаю, но если вы хотите, вы можете поддержать наше небольшое сообщество

Сбербанк: 2202208157638702
Ton: UQCeNdt_oTXg9Y-oHuA7RDBA7MEzNKg-u-KCi6VH95VS9Tlh
USDT TRC20: TEWSFXhZmYmSm1ozVcE3615UzkZvRp5HVr

Желательно на карту сбербанка.

Спасибо всем большое! Искренне каждого благодарю и обнимаю. Вы - те, кто дал мне новый буст в жизни.

Обещаю публиковать качественный контент. Возможно, и ютуб канал не за горами!
3👍1
#HEX • IT pinned «Новогодний Сбор На Благо Канала Так как канал растет, а моя аппаратура уже не растет, нужно вложить средства в канал. Я работаю, но если вы хотите, вы можете поддержать наше небольшое сообщество Сбербанк: 2202208157638702 Ton: UQCeNdt_oTXg9Y-oHuA7RDBA7MEzNKg…»
#HEX • IT
Ближайшие статьи: написаны, ждут публикации: роадмап DevOps инженера, создание веб Фреймворка на python в процессе написания: интеграция C-расширений в python-приложения, как устроен BIOS и загрузчики ОС
Интеграция C-расширений в питон очень интересная, кстати. Прикольно писать на си для питона, с его особенностями (например то что в питоне объект). Столько возможностей открывается
1👍1
Командные оболочки Linux

Некоторое время назад я писал статью о том, как создать свою командную оболочку на C: первая часть, вторая часть.

И вот, настало время поговорить о том, какие еще есть оболочки Linux, кроме bash, zsh и fish.

Dash (Debian Almquist Shell) — командная оболочка UNIX, более легковесная, чем bash, при этом POSIX-совместимая. Она заменяет /bin/sh в сценариях по умолчанию и обеспечивает более высокую скорость выполнения при меньшем потреблении ресурсов.

sudo pacman -S dash # Arch
sudo apt install dash # Debian

Tcsh — командная оболочка UNIX, основанная на и обратно совместимая с оболочкой C (csh).

Некоторые возможности tcsh:

редактирование командной строки с поддержкой стилей vi и emacs;
программируемое автодополнение (оболочку можно настроить так, чтобы по нажатию «Tab» дополнялись не только имена команд и пути, но и поддерживаемые командой параметры);
проверка правописания имён файлов, команд и переменных; 5
расширенный механизм навигации по каталогам (команды pushd, popd, dirs);
периодические события (например, отложенное во времени исполнение команды или «сброс» пользователя по истечении тайм-аута);
возможность указания в приглашении различной полезной информации (текущий каталог, время, дата).
В Linux tcsh может быть полезен в качестве альтернативы оболочке bash для тех, кто предпочитает синтаксис C, а также потому, что некоторым программам для выполнения задач установки требуется оболочка C.

sudo pacman -S tcsh # Arch
sudo apt install tsch # Debian

Ksh (Korn Shell) — командная оболочка. Разработана Дэвидом Корном (AT&T) в 1980-х годах. Имеет полную обратную совместимость с Bourne shell и включает в себя возможности C shell.

Некоторые преимущества ksh: cleaner exit codes, пайпы входа, удобный синтаксис для циклов, простое повторение команд, работа с ассоциативными массивами, возможность эмулировать поведение Emacs и V.

sudo pacman -S ksh # Arch
sudo apt install ksh # Debian


#Linux@hex_warehouse #Shell@hex_warehouse #КомандныеОболочки@hex_warehouse #KSH@hex_warehouse #TCSH@hex_warehouse #DASH@hex_warehouse
🔥5👍21
Есть вот такая прикольная визуализация гитхаб-активности в виде чека

Вставляйте свой ник на этом сайте и готово!
44
Исчерпывающий Roadmap по разработке операционных систем на C с приложенными ссылками на курсы к каждой теме!

https://github.com/mohitmishra786/amILearningEnough/blob/main/src/roadmap/os-dev/noC.md
👍5
Итальянский пародийный музыкальный коллектив Nanowar of Steel, работающий в жанрах хэви- и пауэр-метал, выпустил композицию «HelloWorldjava»


Песня исполнена на языке программирования Java, и это полностью рабочий код, который был опубликован на GitHub. «Этот проект содержит простое приложение на Java, которое демонстрирует базовое применение циклов, условных операторов и обработку исключения с нулевым указателем. Основная функциональность включает вывод строки „Hello World!“ несколько раз в зависимости от указанного пользователем параметра; [в него] намеренно введена ошибка, чтобы показать их обработку», — гласит описание программы-песни в репозитории.

https://github.com/NanowarOfSteel/HelloWorld
11