LinuxDays 2024

Základy Pythonu, ale pro srdcaře (tedy v C)
2024-10-13 , 107
Language: Čeština

Programování v Pythonu je snadné a rychlé. Některé vtipy dokonce tvrdí, že pro létání stačí "import antigravity". Využití Pythonu je populární ve spoustě odvětvích včetně vědy a datové analýzy. Co se rychle napíše, ale může počítat věky. Složitý algoritmus nebo zpracování velkého množství dat může v Pythonu trvat nepříjemně dlouho... Co s tím? Existují přístupy, jak část programu optimalizovat a využít rychlost kompilovaných jazyků. Přednáška ukáže, jak vytvořit Python modul v jazyce C a pak ho importovat v Python skriptu. Samotný interpreter Pythonu (CPython) je napsán v C, a proto i používání běžných Python objektů v C je docela hračka. Propojme to nejlepší z obou světů – snadné programování v Pythonu s výkonem kompilovaných jazyků!


Přednáška ukáže, jak urychlit Python kód pomocí jazyka C a Python C API. Pomocí C API je možné ve zdrojových kódech v C využívat datové struktury a volat funkce, které Python běžně obsahuje. Zároveň je možné v C napsat modul, který lze v Python skriptu importovat a používat. Přednáška postupnými kroky vysvětlí, jak Python vlastně funguje uvnitř. Ukážeme si, co je potřeba pro implementaci Pythonu modulu a objektu s několika metodami. Vysvětlované principy a příklady budou opřeny o veřejnou dokumentaci Pythonu, aby se v ní posluchači zorientovali a mohli se pustit při zrychlování svého Python kódu i do složitějších projektů.

Přednáška vysvětlí základy, a proto by se jí začátečníci rozhodně neměli zaleknout. Na druhou stranu se předpokládá alespoň základní znalost jazyka C, protože Python - to je samá "struct-ura" (nebo "object"?) a ukazatel na ni. ;-)


Difficulty

Pokročilí

See also: Prezentace (887.7 KB)

Tomáš Čejka je odborníkem v oblastech monitorování vysokorychlostních sítí a síťové bezpečnosti. Působí ve sdružení CESNET jako vedoucí týmu výzkumníků a vývojářů, manažer výzkumných projektů, občas i jako vývojář. Mezi další významné aktivity patří vzdělávání a vedení studentů (vč. doktorandů) na Fakultě informačních technologií ČVUT v Praze. Na fakultě se věnuje výuce předmětu "Hardwarově akcelerované monitorování síťového provozu" a vedení řady bakalářských a diplomových prací studentů, které sdružuje pod vlastní Laboratoří monitorování síťového provozu (https://netmon.fit.cvut.cz/).