Microsoft ontwerpt nieuwe programmeertaal Bosque op basis van TypeScript

Microsoft heeft de nieuwe opensource programmeertaal Bosque gelanceerd. Die is gebaseerd op TypeScript, maakt gebruik van algebraïsche bewerkingen en moet vooral simpel zijn om te begrijpen en gebruiken. Dat meldt The Register.

Bosque is geïnspireerd op de syntaxis en types van TypeScript en de semantiek van ML en Node/JavaScript. De taal werd ontwikkeld door Mark Marron, een computerwetenschapper die werkt voor Microsoft.

Marron beschrijft Bosque als een poging om voorbij het gestructureerde programmeermodel te kijken, waarin flow control wordt beheerd met loops, conditionals en subroutines. Dat paradigma werd populair in de jaren zeventig, na publicatie van de paper ‘Go To Statement Considered Harmful’ door computerwetenschapper Edsger Dijkstra in 1968.

Geregulariseerde programmering

Marron vertelt in een interview met The Register dat we ons beter kunnen ontdoen van bronnen van complexiteit zoals loops, veranderlijke toestand en referentiegelijkheid. Met Bosque wil hij naar eigen zeggen ‘geregulariseerde programmering’ bereiken. Door algebraïsche bewerkingen te omhelzen en technieken die complexiteit creëren te mijden, is de taal volgens de maker eenvoudig en gemakkelijk te begrijpen.

“Dit model bouwt voort op de successen van gestructureerde programmering en abstracte gegevenstypen. Dit gebeurt door bestaande programmeermodellen te vereenvoudigen tot een geregulariseerde vorm. Deze elimineert belangrijke foutenbronnen en vereenvoudigt begrip en modificatie van code. Bovendien zet het veel geautomatiseerde redeneertaken over code om in triviale proposities”, aldus Marron.

Complexiteit elimineren

Volgens Marron is referentiegelijkheid een voorbeeld van de soort complexiteit die problemen kan veroorzaken. Referentiegelijkheid is een gegeven waarbij twee variabelen verwijzen naar hetzelfde object in het geheugen. ”Het lijkt heel simpel, maar als je eenmaal referentiegelijkheid hebt in de semantiek, moet je er constant aan denken. Samen met de pointer aliasing-relatie die het introduceert. Een van mijn favoriete papers over aliasing dateert uit 2001 en is getiteld ‘Pointer Analysis: Haven’t We Solved This Problem Yet?’. Inmiddels is het 2019 en is het probleem nog steeds niet opgelost.”

In zijn eigen paper verkent Marron potentiële bronnen van complexiteit in programmeertalen, waarmee Bosque probeert om te gaan. Het elimineren van veranderlijke toestand, loops en referentiegelijkheid zijn volgens hem de belangrijkste. “In de academische literatuur zijn de bijbehorende problemen van sterke updates, loop-invarianten en alias-analyse al meer dan dertig jaar uitgebreid behandeld. Maar nog steeds zijn het grote problemen. Door het elimineren van deze functies en de noodzaak om de bijbehorende problemen op te lossen, vereenvoudigen veel dingen tot conceptueel eenvoudige taken”, aldus Marron.

Verdere ontwikkeling

Voorlopig ziet Marron Bosque vooral als een experimentele programmeertaal om ontwerpkeuzes in talen te onderzoeken en een antwoord te vinden op de grote problemen die hij onderscheidt. In de komende maanden stelt hij de taal verder op punt, samen met een team van twee staigairs.

Als de taal ooit buiten de academische wereld zou worden ingezet, ziet hij vooral potentieel voor de cloud en het Internet of Things. Dit gezien de Bosque-code volgens hem met een kleine voetafdruk kan worden gecompileerd. Bovendien zou het snel opstarten en kan het via symbolische analyse op juistheid worden gecontroleerd.