![]() |
Zelf een simpele scripting taal ontwikkelen.
Ik zou graag een soort zeer beperkte scripting taal schrijven.
Bv zoiets als COPY file1 file2 ofzo zoals in dos maar dan zou copy vb de standaard windows kopieer routines gebruiken. (Dit is slechts een voorbeeld) Sommige programmeertalen hebben een eval functie. Wanneer je bv eval("1+1") ingeeft krijg je twee enzo voorts. Is er een mogelijkheid om eigen operatoren toe te voegen of te wijzigen of bepaalde sleutelwoorden over te nemen uit een andere taal en die te gebruiken in een eigen scripting taal?. Vast wel, maar wat is de beste manier om zoiets te doen. Zijn er programmeertalen die hier meer geschikt zijn? Klooien met left en right functies in vb lijkt me echt niet de manier. (om te achterhalen wat de commands en parameters zijn ofzo) Hopelijk kom ik niet te vaag over. Er zijn gewoon zaken die ik vaak gebruik die ik op een hele snelle manier zou willen uitvoeren. |
In C/C++ kun je operator overloading doen.
|
precies, je kan de meeste operator overloaden. Daarnaast kan je bv voor copy bv het volgende doen. Je maakt het bestand copy.exe en je geeft 'm 2 params mee. dus in de vorm van copy bestand1 bestand2. Maar het nadeel is dat dat je óf een abosulte pad moet geven naar het bestand(dus c:\blabla) . Voor het kopieren zelf kan je filestreams gebruiken, of gewoon system(). maar dat vind ik niet echt een eigen scripting taal. Imo moet je echt een programmeertaal en ASM goed beheersen wil je echt iets maken. Met filestreams kan het op zich wel, maar das niet echt geweldig. Je kan ook bv 1 executable maken. en voor de rest met argumenten werken. Dus bv dat je de exe maakt shell. En de rest met argumenten regelt. Dus shell copy bestand1 bestand2. Of shell del bestand1.
Ik wil evt wel meehelpen om er zelf ook van te leren, maar ik weet niet hoe ver jij bent met programmeertalen |
Leg eens eens uit wat je precies wil doen, want iets maken dat een paar files kopieert kun je ook in een batch-file.
Je kunt in praktisch elke 'taal' een interpreter/shell schrijven, het is dus een kwestie van wat je wil doen. |
Citaat:
Oh, en het is helemaal niet de bedoeling dat ik een copy executable maak. Ik wil een exe maken die kan interpreteren. (Sorry voor de lap tekst) Verder, overloaden is inderdaad een mogelijkheid, maar dat vind ik toch nog iets te beperkt. Stel dat ik een volledige andere (veel simpelere) syntax wil ontwikkelen ofzo. Iets concreets dat ik wil gaan doen heb ik eigenlijk nog niet in gedachten. Maar neem nu windows scripting host bv in vergelijking met een batch file. Om een bestand te verplaatsen in windows scripting host moet je specefieke objecten aanroepen etc. In batch is dat zo gepiept. Een netwerkschijf bijmaken, zelfde verhaal. Of iets anders. Stel (ik zeg stel he) dat je SQL namaakt ofzo (wat een volledige andere syntax is dan c++ ) Dit doe je niet zomaar met overloading...in de meeste gevallen hoef je bv geen haken te gebruiken en eindigt de hele instructie met een ; en niet na ieder commando (SELECT, FROM, WHERE) Dat is iets waar je niet zo gemakkelijk onderuit geraakt als je alleen overloading gebruikt. Er moet dus een andere manier zijn om dit te omzeilen. Wat je zou kunnen doen in het laatste geval is de instructie omzetten naar code die c++ (of een andere taal) begrijpt door haken bij te plaatsen met stringfuncties, de gepaste functies maken enzovoorts. Als je dan nog eens wil dat je taal niet case sensitive is als je c++ gebruikt, wat dan...etc. Het bovenstaande voorstel vind ik dus nogal omslachtig, en ik vroeg me af of er een andere manier is. Wat ik wil zeggen is...(Dit is de eigenlijke vraag) Kan je een eigen scripting taal schrijven zonder het script min of meer te moeten omzetten (of juist wel, maar dan niet op een omslachtige manier) naar de taal waar je een exe schrijft die je scripting taal begrijpt? Wat ik zou willen doen kan ik niet echt verwoorden, ik vraag het eerder uit intresse zodat ik weet welke mogelijkheden dit biedt. |
kijk es naar bison en evt. yacc, zou ik zeggen.
|
Citaat:
|
nouja, een taal ontwerpen is sowieso al niet bepaald een peuleschilletje. weet waar je aan begint he. maar, je kunt altijd even de bison manual bekijken en aan de hand daarvan beoordelen of het al dan niet te hoog gegrepen is.
enige academische (tenminste, ik heb het op de universiteit gehad, zal vast nergens anders te leren zijn) kennis over formele talen en grammatica's is in ieder geval wel op zijn plaats. |
Citaat:
Voor een simpele interpreter heb je geen formele grammatica nodig, dergelijke tools zijn nuttiger bij 'echte' projecten. |
Citaat:
Ik zou overigens niet met C++ beginnen, pak liever C# (mijn voorkeur) of Java, veel makkelijker en bovendien 'mooier'. |
Ik ben deels bekend met VB6 en VB .NET maar naar mijn gevoel vind ik dat niet echt een geschikte taal. (al is vb .NET beter naar mijn gevoel voor dit soort zaken)
Vroeg of laat begin ik misschien wel eens aan java, maar aangezien ik de komende tijd bezig zal zijn met een project in .NET voor mijn eindwerk kan ik me echt niet veroorloven om een nieuwe taal te leren ;) Dat C# heb ik al vaak over gehoord maar ik heb geen idee hoe het te vergelijken valt met C++ of eenderwelke andere programmeertaal. Citaat:
|
Citaat:
En ja win32 betekent niet per se gebruiksvriendelijk(wat jij wel wil toch?) maar dat is imo wel één van de voorwaarde |
Citaat:
|
Citaat:
|
Yo, wat een 1337 talk hier.
Ik volgde het na de eerste 3 regels al niet meer. |
Citaat:
Je zou sommige mensen moeten horen die asm (machinetaal) beheersen...Das meestal andere koek ;) |
Citaat:
|
Citaat:
|
Alle tijden zijn GMT +1. Het is nu 16:58. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.