Zoals de titel het zegt, ben ik dus op zoek naar een eenvoudige scripttaal die geïntegreerd kan worden in mijn C# programma. Met eenvoudig bedoel ik de syntax die zo simpel mogelijk dient te zijn. Wat de interpreter van die taal moet kunnen, is misschien niet zo eenvoudig
Maar laat ik eerst even schetsen waar ik mee bezig ben en wat de bedoeling is...
Eerst en vooral, ik beschouw mezelf als geen supergoede programmeur. Nu dat van de baan is, kunnen we verder.
Ik ben een C# programma aan het schrijven die communiceert met een controllerboard via de seriële poort. Dit alles werkt behoorlijk goed, het C# programma stuurt een bepaalde reeks commando's en die worden netjes uitgevoerd. Het controllerboard (met in- en outputs) zal in veel gevallen dezelfde sequentie moeten uitvoeren maar soms zal er toch eens iets anders geprobeerd worden. En daar wringt het schoentje. Dit programma zal namelijk niet alleen door mij gebruikt worden maar ook door enkele collega's. Hoewel ik hen gerust de brondcode wil bezorgen, hebben de meesten geen ervaring met het programmeren in C#. Het zijn geen programmeurs, het zijn ingenieurs die bepaalde acties willen uitvoeren (met het controllerboard) en de gegevens afkomstig van het board moeten kunnen verwerken. Ik heb al zitten spelen met de .NET CodeDOM en het is mij al gelukt om een lijstje met acties die in een textbox staan met een druk op te knop te laten uitvoeren. Alhoewel ik zaken als de references, namespace, class, ... automatisch aan het programma in de textbox kleef, moet je nog steeds een kennis van de C# syntax hebben om bepaalde zaken uit te voeren. Er wordt ook gebruikt gemaakt van matrixen en er worden wiskundige bewerkingen uitgevoerd. Als je je dan bedenkt dat er in die textbox geen intellisense beschikbaar is, dan moet je eigenlijk de volledige syntax vanbuiten kennen en moet je weten dat de wiskundige constante e in feite Math.E is, dat het Math.Atan is en geen Math.Arctan, ... Die laatste dingen zijn maar simpele voorbeelden aangezien ik toch van plan ben een user reference te maken waarin de belangrijkste van die zaken gewoon vermeld staan. Maar je hebt ook geen manier om simpel te debuggen en geen syntax highlighting.
Dus had ik het graag nog eenvoudiger gezien.
• Een variable bijvoorbeeld, moet geen int, string, double[], ... zijn maar gewoonweg een "var" waar je gelijk wat kan aan toekennen. Zoals in matlab bijvoorbeeld.
• Alle getallen zouden gewoon doubles moeten zijn. Verder bouwend op het bovenstaande; in matlab zijn alle variabelen matrices van doubles. Een enkel getal is dan gewoon een matrix van 1x1.
• Loops (while, for) en if (eventueel switch) zouden mogelijk moeten zijn.
• Variabelen kunnen wegschrijven in een file.
• Wiskundige bewerkingen.
• Zo eenvoudig mogelijke syntax (c-like, basic like?)
• En het belangrijkste: het controllerboard moet aangesproken kunnen worden (door functies in C# aan te roepen?)
Ik heb al heel wat uurtjes zitten googlen en zelf zitten proberen maar ben nog niet echt verder geraakt. Er lijken heel veel scripttalen te bestaan en soms zie ik door de bomen het bos niet meer. Zaken als IronPython lijken mij te ingewikkeld voor wat ik nodig heb, denk ik. Daarom wou ik vragen of iemand hier al ervaring heeft met een scripttaal met een heel eenvoudige syntax die te integreren is in .NET (C#) of die op één of andere manier functies kan aanroepen uit mijn programma?
Of is dit allemaal toch mogelijk met de .NET CodeDOM? Of liggen mijn eisen gewoon te hoog?
Ik heb ook al overwogen zelf een interpreter te schrijven maar vrees dat ik er teveel tijd in zal moeten steken om het geheel goed en bugvrij te krijgen. Of is het eenvoudiger dan ik denk??
Dus indien iemand het ziet zitten om deze lange post te lezen en wat ideeën uit te spuwen, zou ik heel erg blij zijn. Het hoeft niet meteen kant en klaar voorgekauwd te zijn
Alvast bedankt!
Eerst en vooral, ik beschouw mezelf als geen supergoede programmeur. Nu dat van de baan is, kunnen we verder.
Dus had ik het graag nog eenvoudiger gezien.
• Een variable bijvoorbeeld, moet geen int, string, double[], ... zijn maar gewoonweg een "var" waar je gelijk wat kan aan toekennen. Zoals in matlab bijvoorbeeld.
• Alle getallen zouden gewoon doubles moeten zijn. Verder bouwend op het bovenstaande; in matlab zijn alle variabelen matrices van doubles. Een enkel getal is dan gewoon een matrix van 1x1.
• Loops (while, for) en if (eventueel switch) zouden mogelijk moeten zijn.
• Variabelen kunnen wegschrijven in een file.
• Wiskundige bewerkingen.
• Zo eenvoudig mogelijke syntax (c-like, basic like?)
• En het belangrijkste: het controllerboard moet aangesproken kunnen worden (door functies in C# aan te roepen?)
Ik heb al heel wat uurtjes zitten googlen en zelf zitten proberen maar ben nog niet echt verder geraakt. Er lijken heel veel scripttalen te bestaan en soms zie ik door de bomen het bos niet meer. Zaken als IronPython lijken mij te ingewikkeld voor wat ik nodig heb, denk ik. Daarom wou ik vragen of iemand hier al ervaring heeft met een scripttaal met een heel eenvoudige syntax die te integreren is in .NET (C#) of die op één of andere manier functies kan aanroepen uit mijn programma?
Of is dit allemaal toch mogelijk met de .NET CodeDOM? Of liggen mijn eisen gewoon te hoog?
Ik heb ook al overwogen zelf een interpreter te schrijven maar vrees dat ik er teveel tijd in zal moeten steken om het geheel goed en bugvrij te krijgen. Of is het eenvoudiger dan ik denk??
Dus indien iemand het ziet zitten om deze lange post te lezen en wat ideeën uit te spuwen, zou ik heel erg blij zijn. Het hoeft niet meteen kant en klaar voorgekauwd te zijn