Flexibel programmeren in Forth

De Interessegroep HCC!forth is misschien niet zo groot, maar is wel bezig met leuke en interessante projecten: van computergestuurde wandelrobots tot pijporgels. Forth is een programmeertaal waar nog steeds muziek in zit!

“Forth is uniek,” zegt Leon Konings, voorzitter van HCC!forth. “Ik ben er al 35 jaar mee bezig en het is nog steeds een van mijn favoriete talen. Het is ongetwijfeld de meest flexibele en kneedbare programmeertaal die er bestaat. De taal is bruikbaar als een hogere programmeertaal, zoals Basic of Pascal. Meestal wordt hij echter gebruikt als een goed alternatief voor een assembler, de belangrijkste concurrent is in dat geval C. De taal werkt prima onder bijvoorbeeld Windows, Linux en OS X.”

Bijeenkomsten
“Onze gebruikersgroep had vroeger honderden leden, maar dat aantal is gedaald tot iets meer dan honderd”, vertelt Albert van der Horst. “Onze bijeenkomsten worden wel altijd goed bezocht en kennen een zeer goede sfeer. Er worden veel presentaties gegeven en er wordt veel informatie uitgewisseld. Dat kan ik andere interessegroepen zeker aanbevelen. Er zijn meestal meerdere presentaties per bijeenkomst. Vaak gaat het over de activiteiten van een werkgroep, daarnaast hebben veel leden hun eigen projecten of interesses waar zij iets over willen vertellen. Meer leden zijn uiteraard welkom. Als zij actief worden in onze werkgroepen, zou dat helemaal mooi zijn.”
Aan samenwerking met andere HCC-groeperingen wordt gewerkt, aldus Leon. “Sommige leden zijn lid zijn van meerdere HCC-groeperingen. Ook heeft Willem Ouwerkerk laatst presentaties voor andere groeperingen gegeven en zijn er bij ons presentaties gehouden door Gerard Vriens van de HCC Interessegroep Artificiële Intelligentie.”

Drukbezochte bijeenkomst HCC!forth
Agenda
De vaste datum voor bijeenkomsten is de tweede zaterdag van elke even maand. Locatie is het gebouw naast de Boskapel, Boslaan 1, 3722 BA Bilthoven. De Domotica-werkgroep komt vaker bijeen, ook via Skype. Volgende bijeenkomsten van HCC!forth vind je in de agenda op hcc.nl of natuurlijk de site van HCC!forth. Belangstellenden zijn hartelijk welkom!

Bestuur
Het bestuur van HCC!Forth bestaat uit:
Leon Konings - voorzitter
Frans van der Markt - secretaris
Dick Willemse - penningmeester
Paul Wiegmans - webmaster
Albert van der Horst - bestuurslid

Over Forth
Internationaal
Tingeltangel en orgel

Energiezuinige chip
Verleden, heden en toekomst
Werkgroepen en leuke links
Over Forth
“Het grootste voordeel is, dat je een Forthsysteem samen met een Forthprogramma op een computerchip kunt zetten. Een Forthsysteem heeft meestal bijzonder weinig ruimte nodig. Via een terminalprogramma kun je met het programma communiceren. Een Forthsysteem wordt vaak speciaal geschreven voor een bepaalde chip. Forth is zeer geschikt voor het maken van een taal, toegespitst op een bepaald onderwerp. Op zijn best lijkt een Forthprogramma uiteindelijk op een normale zin.”

Foto 4 Orgel binnenzijde
Leesbaar

“Er bestaat een Forth-standaard, maar veel programmeurs ontwikkelen hun eigen Forth voor een bepaalde computerchip. De standaard wordt niet altijd goed geïmplementeerd, documentatie ontbreekt of is schaars. Het is prima mogelijk om een goed leesbaar Forthprogramma te maken, maar je kunt ook het tegenovergestelde doen. Dat geldt overigens voor veel programmeertalen. Men zegt weleens dat Forth onleesbaar is, maar het grappige is juist dat Forth zo flexibel is, dat je het zo leesbaar kunt maken als je wilt. Forth kent geen conventies of starre structuren, als de hardware er ook maar enigszins toe in staat is kun je het in Forth realiseren, testen en uitontwikkelen.”

FIG Chapter Holland
HCC!forth is internationaal georiënteerd en staat wereldwijd bekend als FIG Chapter Holland. Albert van der Horst: “FIG Chapter Holland bestond al vóór HCC, met name rond de Utrechtse Universiteit, die het zogenoemde FYSFORTH in laboratoria gebruikte.

Foto 9 Prijzen behaald tijdens HCC DagenIn de jaren 80 was HCC een overkoepeling van alle mogelijke computerverenigingen, voor elk soort computer één. Het lag voor de hand voor FIG Chapter Holland om zich daarbij aan te sluiten. De band met HCC was niet altijd strak. Eind tachtiger jaren was er een tijd dat niemand zin had een begroting op te stellen en kregen we dus het geld van de leden via HCC niet binnen. Geen nood, we genereerden zelf voldoende inkomsten via verkoop van floppy’s en overdrukken van documentatie. Tijdens de roemruchte HCC-dagen hebben we overigens vaak prijzen gewonnen.”

De interessegroep heeft tientallen open source compilers ontwikkeld en stelt die beschikbaar op diverse websites. Het internationale karakter leidt ertoe dat de meeste documentatie ook in het Engels beschikbaar is. Het merendeel van de vragen om ondersteuning komt uit het buitenland. Er is een actieve uitwisseling met andere groepen, zo hield Albert Nijhof in 2016 een lezing op een Duits congres over het spelen van Beethoven-composities via de luidspreker van een microcomputer.

Tingeltangel
Foto 3 TingelTangelDe Manx-werkgroep houdt zich bezig met het spelen van muziek, op mechanische instrumenten en elektronisch. De muziek is geformuleerd in een op Forth gebaseerde muziektaal (Manx), ontworpen door Marcel Hendrix en Albert Nijhof. Trekker van de werkgroep is Albert van der Horst, al zeer lang lid van HCC, getuige ook zijn lidnummer 405. “De Tingeltangel is een computergestuurde vibrafoon met metalen buisjes, die wordt bestuurd vanuit Forth”, vertelt Albert. “Eigenlijk hebben we twee tingeltangels: één met koperen buisjes en één met aluminium buisjes. Beide worden aangestuurd vanuit de parallelle poort via een klein stukje elektronica. Het besturingsprogramma ‘tmanx’ is opgebouwd op basis van ciforth dat draait op het Linux-besturingssysteem.” Ciforth (common Intel Forth), gemaakt door Albert van der Horst, is geschikt voor Intel processoren en is beschikbaar voor Linux (ook 64 bit), MS-Windows (ook 64 bit) en OS

Orgel
De tingeltangels zijn al jaren paradepaardjes van de Interessegroep. In de tijd van de HCC-dagen speelden zij al Sinterklaas- en Kerstliedjes. Nu zijn ze gewoon ‘af’ en valt er niets meer aan te ontwikkelen. Albert: “Dat ligt anders bij de ‘opvolger’ van de Tingeltangel: het elektronisch aangestuurd orgel. Nog niet zo lang geleden hadden we nog maar 16 pijpen. Voor deze exacte configuratie heeft Gerard Vriens een compositie gemaakt, ‘one armed bandit’, zo genoemd omdat dit bereik met één hand te bespelen is. Nu heeft het orgel 24 pijpen en we hopen uit te komen op totaal 40 pijpen. In september 2017 heeft Albert al een demonstratie gegeven tijdens de MegaCompUfair in De Bilt.”

Energiezuinige chip
Foto 7 Hexapod
Willem Ouwerkerk: “De MSP430 microcontroller van Texas Instruments is een 16-bits Low Power microcontroller. De chip heeft een elegante instructieset en interessante interne hardware. We zijn op het idee gebracht door een bezoek aan de Duitse Forthclub, daar had men de MSP-EXP430G Launchpad met een werkend Forthsysteem er op. Dat systeem vonden we niet degelijk genoeg en daaruit is noForth ontstaan. Intussen hebben we voor zeven verschillende MSP-varianten een noForth beschikbaar.
Website: https://home.hccnet.nl/anij/nof/noforth.html

Egel-project - Biped en Hexapod
Willem: “De MSP430 documentatie is ontoegankelijk. Onder andere om de MSP430 beter begrijpelijk te maken, hebben we de Egel-website gebouwd. Daar hebben we een stuk of vijftig hard- en softwarevoorbeelden op uitgewerkt. Hoogstandjes zijn een autonome wandelende robot (de Biped), een zespotig insect (de Hexapod) en een universele bootloader. Er wordt constant gewerkt aan verbeteringen en uitbreidingen.”
Website: https://home.hccnet.nl/willem.ouwerkerk/egel-for-msp430/egel%20for%20launchpad.html
Over de twee lopende robots is een lezing gehouden waarin alle facetten van het ontwikkelen van een lopende robot worden behandeld. De lezing is opgenomen door een HCC-videoteam en te zien op YouTube: www.youtube.com/embed/fybYGWkLrgM

Verleden
Forth is bedacht door Charles Moore toen hij rond 1968 computerprogramma's schreef om radiotelescopen te bedienen. De interactieve natuur van de taal maakt deze zeer geschikt voor dit soort besturingen en om iets uit te testen op afstand, doordat de taal zelf in een computerchip wordt geladen en er op afstand met de chip gecommuniceerd wordt. Een programma, dat ook in de chip is geladen, kan zo op afstand getest en gewijzigd worden. Intussen kan dit programma vaak zijn werk blijven doen. Moore heeft gespecialiseerde chips ontwikkeld die zeer robuust zijn en dus geschikt voor gebruik in de ruimte. Het Rosetta-project heeft in september 2016 zijn laatste (Forth-) adem uitgeblazen. Voor autonome meetsystemen in de ruimte (Space Shuttle) of de diepzee (zoeken naar de Titanic) is het van essentieel belang dat vanaf grote afstand commando's zijn te geven, of dat onder extreme condities - zoals vastlopende motoren of uitvallende meetapparatuur - de software kan worden vervangen.

De toekomst van Forth
Forth heeft daarom zeker nog toekomst, denkt Leon Konings. “Een bijzondere eigenschap van Forth is dat het zo compact is, dat het op de kleinste microcontrollers kan draaien. Dat opent nieuwe perspectieven. De uitvinder van Forth is een geniale minimalistische man die hele slimme dingen heeft bedacht, zoals meerdere chips waar een groot aantal hele kleine computertjes op staan. Dat zou mijns inziens de toekomst van Forth kunnen zijn: toepassingen waar je iets heel erg klein wilt hebben, samen met het interactieve karakter. Ik denk bijvoorbeeld aan het werk van Eric Drexler, bedenker van de moleculaire nanotechnologie. Voor dat vakgebied zou Forth wellicht een goede taal zijn.”

Werkgroepen
Foto 2 Clubleden aan het werk tijdens een workshop
HCC!forth kent de volgende werkgroepen, met elk een eigen ‘trekker’:
- Internet-werkgroep
- Manx-werkgroep (tingeltangel en orgel)
- 32bits Forth-werkgroep
- Egel-werkgroep
- noForth-werkgroep
- Domotica-werkgroep.
De recentelijk opgerichte Domotica-werkgroep maakt ook gebruik van de Raspberry Pi.
Albert van der Horst: “Uiteraard komen er steeds nieuwe onderwerpen naar voren, voornamelijk op het gebied van microcontrollers en wat daarmee gedaan kan worden. Veelal gaat iemand als eenling aan de slag met een idee, en als het aanspreekt sluiten anderen zich daarbij aan. De meeste werkgroepen hebben weinig (twee tot vijf) leden. Dat lijkt de juiste grootte als er echt gewerkt moet worden.”

Links:

HCCforth

Deze reportage is eerder verschenen in PC-Active 298 februari/maart 2018

'Meld je aan voor de nieuwsbrief'

'Abonneer je nu op een of meerdere van onze nieuwsbrieven en blijf op de hoogte van onze activiteiten!'

Aanmelden