Hitta kursen för dig

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

Kursinformation

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

Kursschema

Vi har förtillfället inte några schemalagda datum för denna kursen. Har du önskemål eller vill få den företagsanpassad, kontakta gärna oss!

Lärare

Dela

Kontakta oss för mer information

040 61 70 720
info@edument.se


Alla priser är exkl. moms