Zijn er statisch getypte, insluitbare scripttalen?

Ik vraag me af of er statisch getypte, insluitbare scripttalen zijn. Python, JavaScript, enz. zijn geweldige talen, maar ze worden dynamisch getypt (dat wil zeggen, typen worden tijdens runtime gecontroleerd). Ik vraag me af of iemand statisch getypte scripttalen kent die kunnen worden ingesloten in een C++-toepassing?


Antwoord 1, autoriteit 100%

Ik raad je aan om Angelscriptte bekijken. We gebruikten het op Warsowen het is best goed. Het heeft alle functies die je zou verwachten, zoals klassen, geheugenbeheer, enz. Omdat het statisch is getypt, kan het betere optimalisaties voor je maken, en dus eindigt de bytecode sneller dan andere scripttalen.

AS is echter niet zo gemakkelijk te gebruiken als andere zoals Lua, en er is slechts een enkele .zip-download — dat betekent geen .exe-installatieprogramma’s, .deb-pakketten, .dmg of wat dan ook. Over het algemeen is dit OK, omdat je AS sowieso in je project wilt bundelen. De belangrijkste moeilijkheid in vergelijking met Lua is alleen dat de bibliotheek een stuk groter is (maar meer functies heeft). Niet zo veel mensen gebruiken het, dus het is een stuk moeilijker om voorbeelden en hulp te vinden, maar er zijn goede documenten, dus het zou niet zo moeilijk moeten zijn om aan de slag te gaan.

Persoonlijk zou ik echter liever een dynamische taal voor scripting hebben. Wanneer ik een app script, wil ik daar binnenkomen en de rotzooi eruit coderen zonder me zorgen te maken over C-stijl bagage. Behalve AngelScript kan ik echt geen andere bedenken die het aanbevelen waard is.


Antwoord 2, autoriteit 33%

Nou, er is Ch– de insluitbare C/C++-interpreter


Antwoord 3, autoriteit 20%

Hoe zit het met C#? Bekijk Mono’s implementatie van een C# “scripttaal” REPL (http://www.mono-project.com /CsharpRepl)

Update:als je niet weet wat een REPL is, is dit wat je ziet als je Python uitvoert zonder argumenten, of irb


Antwoord 4, autoriteit 13%

Haskell is statisch getypt. En je kunt waarschijnlijk ghci of knuffels (beide zijn tolken) insluiten in een ander programma. Maar het is niet gemakkelijk, afaik.

Other episodes