Filtrera

Perl 6 för programmerare

Perl 6 är ett nytt spännande språk, med utmärkt Unicode-support, snygg syntax för mönstermatchning som skalar upp från enkla reguljära uttryck till hela grammatiker, högnivåfeatures för concurrency, inbyggd reaktiv programmering, behändig interoperabilitet med native-bibliotek (C), Perl 5, Python, med mera. En solid och flexibel objektorientering gör det snabbt och lätt att implementera objektmodeller, medan en stor uppsättning features inspirerade av funktionell programmering gör det till en fröjd att tugga igenom data. Tillsammans gör detta Perl 6 till ett fantastiskt "glue language" för den moderna världen. Jämfört med Perl 5 så representerar Perl 6 ett revolutionärt steg, snarare än ett evolutionärt.

Denna tvådagarskurs låter dig lägga till Perl 6 till din programmeringsverktygslåda. Vi börjar med små scripts för att transformera data på enkla sätt. Gradvis bygger vi upp till att författa program med concurrency och webservices, och vi tar ett brett grepp över features på vägen. Kursen utforskar inte bara språket; den beskriver även hur man skriver tester, installerar och använder moduler, och hur man kan få hjälp och lära sig mer efter kursen. Den innehåller korta och frekventa hands-on-övningar, för att ge många möjligheter att utforska språket och få en känsla för det.

I Edument-teamet finns personer som har bidragit till både designen och kompilatorimplementationen av Perl 6, och som fortfarande är högst aktiva i communityn idag. På så vis kan du vara trygg i att du lär dig av dem som kan Perl 6 bäst.

    Målgrupp

    Den här accelererade kursen riktar sig till programmerare som snabbt vill skaffa sig en uppfattning av språket Perl 6, och utforska vad det har att erbjuda. 

    Förkunskaper

    Kursen antar att man har förkunskaper om typiska koncept som figurerar i många andra språk: värden, variabler, if-satser och loopar, subrutiner, klasser, och metoder. Därför är det bra om en deltagare har ett antal års erfarenhet inom programmering i minst ett programmeringsspråk för att ta till sig den här kursen. (Till exempel Perl 5, C#, JavaScript, Python, eller Ruby.) Perl 6 skiljer sig på ett antal sätt från Perl 5, och det är bäst att betrakta det som ett nytt språk i samma familj; därför är kunskap i Perl 5 inte ett krav för kursen. 

    Dag 1

    Grunderna

    • Specifikation vs. implementation
    • Att installera Rakudo Perl 6
    • Att förstå Perl 6-stacken
    • Hello, world
    • Satser
    • Det interaktiva skalet
    • Modulinstalleraren zef
    • Var man hittar dokumentation och får hjälp

    Värden

    • Numeriska värden
    • Värden vet WHAT de är
    • Strängar
    • Booleska värden

    Variabler

    • Skalära variabler
    • Array-variabler
    • Hash-variabler (associativa arrayer)
    • Tilldelning vs bindning
    • Dynamiska variabler
    • Interpolering

    Grundläggande I/O

    • slurp och spurt
    • Att jobba med filhandtag
    • Teckenkodningar

    Kontrollflöde

    • Iteration med for-loopen
    • Konditionella satser
    • Definedness
    • Fler loopiga färdigheter

    Grundläggande testning

    • Testkultur
    • Test-modulen
    • De vanligaste test-anropen
    • plan vs done-testing

    Rutiner och block

    • Deklaration av subrutiner
    • Signaturer, parametrar, och argument
    • Att begränsa returtypen
    • Block och "spetsiga block"
    • Platshållarparametrar
    • Uppackning och destrukturering

    Smartmatchning

    • Operatorerna ~~ och !~~
    • given, when, och ett återbesök hos topic-variabeln
    • where-egenskaper
    • subset-typer

    Exceptions

    • die och CATCH
    • Inbyggda exception-typer
    • Testanrop som har med exceptions att göra

    Objektorientering

    • Klasser, attribut och metoder
    • Roller och tillplattande komposition
    • Arv
    • Hemsnickrade exception-klasser
    • Parametriserade roller
    • FALLBACK-metoden
    • Introspektion

    Dag 2

    Enkel mönstermatchning av text

    • En översikt över den nya regex-syntaxen
    • Literaler
    • Kvantifierare
    • Teckenklasser, inbyggda och användardefinierade
    • Gruppering och fångst
    • Namngivna fångande grupper
    • Alternativ: sekventiella och längsta prefix
    • Att bryta ut upprepningar till namngivna reguljära uttryck
    • Lookahead och andra zero-width assertions

    Parsning med grammatiker

    • Vad är en grammatik?
    • Börja med TOP
    • Metoderna parse och subparse
    • token vs regex
    • rule och automatisk hantering av whitespace
    • make och .made
    • Action-klasser

    Att skapa moduler

    • Moduler, kompileringsenheter, och distributioner
    • export-egenskapen och exporttaggar
    • use och att importera via en tag
    • EXPORT-subrutinen för skräddarsydd export
    • Filen META6.json

    Multipel dispatch

    • Via antal argument
    • Via typ
    • Via smartmatchning
    • Via struktur
    • Insikt: operatorer är bara subrutiner med multipel dispatch
    • Subrutinen MAIN

    Sekvenser och laziness

    • Array, List, och Seq
    • Vanliga operationer för att processa listor: map, grep, unique, med flera
    • Meta-operatorerna reduce, zip och cross

    Concurrency

    • Promise och await
    • Reaktiv programmering med Supply
    • Att jobba asynkront med processer
    • Syntaxen supply/react/whenever

    Att sätta samman alltihop: vi byggen en webservice

    • Biblioteket Cro för att bygga reaktiva services
    • Reaktiva pipelines
    • Signatur-baserad routing
    • Supplies möter web sockets

    Saker att nämna

    • Inline::Perl5 och Inline::Python
    • NativeCall
    • Profiling

    Relaterade artiklar

    • Edument lanserar Comma Community - ett gratis Perl 6 IDE

      Idag släpper vi Comma - Community och Complete. Detta innebär att Perl 6- utvecklare numera kan ta del av Comma som en gratis version eller som betalande prenumeranter beroende på ens behov.

      Läs mer

    Kursinformation

    Kurskod: T260
    Kurslängd: 2 dagar
    Pris: 21 500 SEK
    Språk: English

    Kursschema

    Stockholm
    27 majBoka nu
    21 novBoka nu
    Göteborg
    20 majBoka nu
    14 novBoka nu
    Malmö
    13 majBoka nu
    7 novBoka nu

    Lärare

    Dela

    Kontakta oss för mer information

    040 61 70 720
    info@edument.se


    Alla priser är exkl. moms