HCC!Forth

HCC!forth

Zaterdag 9 april 2011, in Bilthoven

  • 10:30 Zaal open en koffie voor vroege vogels.
  • 11:00 "Factor - de programmeertaal" door Leon Konings
  • 12:30 Pauze
  • 13:00 Algemene Leden Vergadering(ALV)
  • 15:00 Sluiting.

Een verslag van de Algemene Leden Vergadering volgt.
De vergadering was goed bezocht...

Presentatie "Factor - de programmeertaal" door Leon Konings

Factor is een programmeertaal, waarin de beste eigenschappen van meerdere programmeertalen en -technieken gecombineerd worden.

De bedenker van Factor is Slava Pestov. Hij is de man achter JEdit. De zeer veelzijdige editor geschreven in Java. Hij begon met JEdit op 16-jarige leeftijd.

Slava Pestov is in 2003 begonnen met Factor. Eerst schreef hij de kernel in Java, later in C. De C-kernel is klein. Het grootste deel van Factor is geschreven in Factor zelf.

Factor is sterk beinvloed door Forth, Lisp en de programmeeromgeving van Smalltalk. Deze programmeeromgeving is zeer handig en ziet er fraai uit. Er kan gewerkt worden met een tekstverwerker naar keuze.

De taal is "object-georiƫnteerd" en het is mogelijk "functioneel" te programmeren.

Net als in Forth wordt met "woorden" gewerkt. Veel van de syntax is hetzelfde als die van Forth. Het is mogelijk om eenvoudige Forth-woorden zonder verandering te gebruiken.

In Factor is de stack "herontdekt". Zie hiervoor de hieronder bij de links vermelde "Concatenative Language" site. Behalve normale Forth-woorden, zoals "swap" en "drop" zijn er ook andere handige manieren om met de stack om te gaan. Zie hiervoor de "combinators" library. Het is ook mogelijk om locale variabelen te gebruiken.

Wel is het verplicht bij de definitie in een stack-notatie op te geven hoeveel input- en outputparameters er zijn. Hierdoor kunnen veel programmeerfouten, die de stack verknoeien, voorkomen worden.

Naast getallen worden er ook objecten op de stack gezet. Dit object kan van alles zijn, een "word", een "quotation" ( "word" zonder naam ), een "sequence" ( lijst met getallen ) etcetera.

Net als Lisp en Java doet Factor aan "garbage collection". Dit wil zeggen, dat ongebruikt geheugen automatisch wordt vrijgegeven.

Er is een grote bibliotheek met "vocabularies" beschikbaar. De taal groeit hard. Er zijn ongeveer 30 personen, die aan deze bibliotheek hebben bijgedragen.

Een sterk punt van Factor is de goede documentatie. Documentatie wordt automatisch gegenereerd. Deze bestaat dan uit de namen van de vocabulary en het woord, de stack notatie (aantal in- en output parameters), de sourcecode en links naar gerelelateerde bestanden. Het is mogelijk zelf commentaar en voorbeelden toe te voegen.

De ondersteuning van unit-tests is uitstekend. Na een typische interactieve test-sessie, is het zeer eenvoudig om de tests te kopiƫren naar unit tests. Deze unit tests kunnen later worden gebruikt om te testen of het programma na een wijziging nog steeds goed werkt.

De combinatie van Forth en Lisp is zeer sterk. Factor is een soort Lisp met minder haakjes. Dit komt natuurlijk door het gebruik van de stack. Forth eigenschappen en technologie zijn ook zeer herkenbaar.

Iemand die Forth al kent, heeft een groot voordeel als hij deze taal gaat gebruiken: Hij heeft geen problemen meer met de "Reverse Polish Notation".

Er zijn nog geen boeken over Factor geschreven. Er wordt aangeraden de Forth en Lisp literatuur te raadplegen!

Belangrijkste website: http://factorcode.org/
De documentatie: http://docs.factorcode.org/
BLOG: http://planet.factorcode.org/
Concatenative Language: http://concatenative.org/wiki/view/Concatenative%20language

De slides van de presentatie van Leon zijn hier: dutch-fig-talk.zip
Het is een tekstformaat dat door Factor gelezen kan worden.