Seminář o jazyku Perl 6

V letním semestru 2016/17 vedeme s Filipem Štědronským seminář o jazyku Perl 6 [NDMI094] (viz reklamní letáček). Seminář se koná ve středu od 15:40 v S8.

Zápočet dáváme za jednoduchý zápočtový program, účast na semináři k jeho napsání nejspíš výrazně dopomůže.

Vyzkoušejte si Perlivou soutěž :-)

Program semináře

datum co jsme dělali tahák video
1. 3. Filosofování o programovacích jazycích a pomluvení většiny z nich coby motivace pro studium Perlu6. Principy návrhu P6. Příklady z letáčku. 02
8. 3. Základy syntaxe: mezery (a unspaces), komentáře, literály. Proměnné a deklarátor my. Základní operátory a řídicí konstrukce. 03 03
15. 3. Uvedení state na pravou míru. Řetězce a quoting. Proměnné, kontejnery a binding. Posloupnosti, pole, slipy a generátory posloupností. 04 04
22. 3. Základní metody seznamů a polí. Heše a jejich příbuzenstvo (množiny, pytle a mixy). Funkce a jejich signatury, jak se z argumentu stane parametr. 05 není
29. 3. Funkce, rutiny, bloky, multifunkce, is cached. Subsignatury. Funkce MAIN. Operátory: definice, určení priority, junctions, metaoperátory. 06 06
5. 4. Násobení řetězců a seznamů. Feed operators. OOP: objekty a třídy, (multi)metody, atributy a accessory. Vícenásobná dědičnost, MRO (method resolution order) a algoritmus C3, interakce s multimetodami. 07 07
12. 4. OOP: konstruktory, delegace, kompozice (role a mix-iny). Typové objekty aneb mnoho různých undefů. Metatřídy a metametody. Zvěřinec standardních typů. Výjimky. 08 08
19. 4. Ještě k výjimkám: failures, control flow exceptions. Phasery. Úvod do Unicode: různé druhy codepointů, reprezentace, vlastnosti, normální formy. Stringy v P6: Str, Uni, Buf a Blob. Reklama na regexy. 09 09
26. 4. Regexy: literály a matchovací operátory, množiny a kategorie znaků, kvantifikátory a jejich modifikátory, alternativy, match objekty, zachytávání (dvojí tvář captures), assertions, skládání regexů. 10 10
3. 5. Regexy: backtracking, longest token matching, příslovce, gramatiky a jejich dědičnost, sémantické akce, proto-regexy. Balíčky a moduly, exportování a importování. 11 11
10. 5. Interakce s cizím kódem: NativeCall, Inline::Perl5. Generování kódu v době importu. Práce se soubory. Líné vyhodnocování, gather/take. Paralelní a asynchronní programování: HyperSeq, spouštění procesů, promises, channels, supplies. 12 12
17. 5. Přednáška se nekoná: Rektorský sportovní den.
24. 5. Implementace P6: NQP (jazyk, jeho překladač, obecná stavebnice překladačů), serializace, QAST (abstraktní skoro-syntaktický strom), 6model (stavebnice objektových systémů), MoarVM. Příklady: rozšíření jazyka o HTML quoting s bezpečnou interpolací, (HTMLQuote.pm6, html-test.p6), jednoduchý systém šablon (template.p6). Makra (pouze v taháku, na přednášce jsme nestihli). 14 14

Kde najít dokumentaci?

Jak si pořídit Perl 6

Debian

Verze Rakuda v Jessie (2014.07) je nepoužitelně stará. Připravili jsme pro vás APT repozitář s aktuální verzí 2017.02. Přidejte následjící řádek do /etc/apt/sources.list:

deb http://regnarg.cz/p6 jessie main

Potom už jen:

apt update
apt install rakudo

V testing je verze 2016.12, která by mohla být dostačující. Nainstalujte prostě apt install rakudo. Případně můžete rovněž zkusit nás repozitář.

Arch Linux

Pro Arch existuje neoficiální repozitář obsahující aktuální binární balíčky Rakuda. Stačí přidat do /etc/pacman.conf:

[rakudo]
Server = https://spider-mario.quantic-telecom.net/archlinux/$repo/$arch
SigLevel=Never

a pak:

pacman -Sy rakudo

Alternativně lze balíčky sestavit z AUR.

Windows

Nešťastníci, kteří si místo operačního systému pořídili Windows, mohou sáhnout po Rakudo Star.

Rakudobrew

Pokud si chcete zkompilovat nejnovější verzi Rakuda z repozitáře, můžete použít rakudobrew.

git clone https://github.com/tadzik/rakudobrew
cd rakudobrew
bin/rakudobrew build moar 2017.01
PATH=`pwd`/moar-2017.01/install/bin:`pwd`/moar-2017.01/install/share/perl6/site/bin:$PATH
perl6  # Zkusíme, že překladač funguje
# Nainstalujeme správce modulů, pro jistotu oba :)
bin/rakudobrew build panda
bin/rakudobrew build zef
# Nainstalujeme základní moduly, ale pozor, jsou k tomu potřeba hlavičkové soubory od libssl
apt update && apt install libssl-dev
panda install Task::Star

Počítačová laboratoř na MS

Je tu nainstalováno aktuální Rakudo, ale zatím bez správce modulů.

Stránku spravuje Martin Mareš