Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   Zelf een simpele scripting taal ontwikkelen. (https://forum.scholieren.com/showthread.php?t=732565)

Droyd 26-01-2004 23:33

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.

eddie 27-01-2004 07:49

In C/C++ kun je operator overloading doen.

Dr HenDre 27-01-2004 09:12

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

Chimera 27-01-2004 12:20

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.

Droyd 27-01-2004 22:25

Citaat:

Dr HenDre schreef op 27-01-2004 @ 10:12:
Imo moet je echt een programmeertaal en ASM goed beheersen wil je echt iets maken.
Waarom zou je asm moeten beheersen. Ik zou gewoon een eigen class maken gebaseerd op reeds bestaande methods of iets dergelijks. Wel fijn dat je zou willen meehelpen maar ik sta zelf niet erg ver in programmeren. (niet in de zin dat ik pas if structuren onder de knie heb, maar toch ;) )

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.

Screaming Slave 27-01-2004 22:29

kijk es naar bison en evt. yacc, zou ik zeggen.

Droyd 27-01-2004 22:42

Citaat:

Screaming Slave schreef op 27-01-2004 @ 23:29:
kijk es naar bison en evt. yacc, zou ik zeggen.
Idd, zoiets zoek ik...Jammer heb ik nooit echte programma's geschreven in c++ (ik haalde c++ aan in mijn vorige posts omdat ik aannam dat de mensen die een antwoord hadden op mijn vraag waarschijnlijk hun vb-fase al lang zijn voorbij gestreefd, of zelfs nooit gekend hebben..)

Screaming Slave 27-01-2004 22:45

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.

Chimera 28-01-2004 09:12

Citaat:

Screaming Slave schreef op 27-01-2004 @ 23:45:
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.
Ik heb het ook gehad, op de HIO dus.

Voor een simpele interpreter heb je geen formele grammatica nodig, dergelijke tools zijn nuttiger bij 'echte' projecten.

Chimera 28-01-2004 09:15

Citaat:

Droyd schreef op 27-01-2004 @ 23:42:
Idd, zoiets zoek ik...Jammer heb ik nooit echte programma's geschreven in c++ (ik haalde c++ aan in mijn vorige posts omdat ik aannam dat de mensen die een antwoord hadden op mijn vraag waarschijnlijk hun vb-fase al lang zijn voorbij gestreefd, of zelfs nooit gekend hebben..)
Hmm, ik zou eerst eens een taal gaan leren, dan kom je vanzelf wel op ideeen hoe je een dergelijk project aan zou kunnen passen.

Ik zou overigens niet met C++ beginnen, pak liever C# (mijn voorkeur) of Java, veel makkelijker en bovendien 'mooier'.

Droyd 28-01-2004 16:17

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:

Screaming Slave schreef op 27-01-2004 @ 23:45:
nouja, een taal ontwerpen is sowieso al niet bepaald een peuleschilletje. weet waar je aan begint he.
Taal per se...Ik zou voor bepaalde veel gebruikte toepassingen het er gemakkelijker willen opmaken. Ze hoeft helemaal niet krachtig te zijn. Liever snel te typen zonder veel regels en niet veel mogelijkheid om fouten te maken. (waar tegenover staat ze misschien overbodig werk doet, en nogal wat beperkingen zou hebben, maar dat vind ik in dit geval niet erg)

Dr HenDre 28-01-2004 17:18

Citaat:

Droyd schreef op 28-01-2004 @ 17:17:

Dat C# heb ik al vaak over gehoord maar ik heb geen idee hoe het te vergelijken valt met C++ of eenderwelke andere programmeertaal.

C# is gewoon java met een MS tintje. De syntax van C# en java lijken nog meer op elkaar dan die van php en C++. En ik zelf vind C/C++ mooier dan java/C#. Maar als je het dus gebruiksviendelijk wil houden(win32). Dan kan je beter java/c# pakken, want win32 proggen in c++ is geen pretje.

En ja win32 betekent niet per se gebruiksvriendelijk(wat jij wel wil toch?) maar dat is imo wel één van de voorwaarde

Chimera 28-01-2004 19:15

Citaat:

Dr HenDre schreef op 28-01-2004 @ 18:18:
C# is gewoon java met een MS tintje.
Nee, het is Java done right, Java++ so to speak. C# heeft als taal veel meer mogelijkheden, en als platform een veel mooiere API. Bovendien is het nog platform onafhankelijk ook en is het een meer 'open' taal dan Java.

Dr HenDre 28-01-2004 19:22

Citaat:

Chimera schreef op 28-01-2004 @ 20:15:
Nee, het is Java done right, Java++ so to speak. C# heeft als taal veel meer mogelijkheden, en als platform een veel mooiere API. Bovendien is het nog platform onafhankelijk ook en is het een meer 'open' taal dan Java.
daar kan k nix over zeggen, k mikte puur naar de syntax, k ken een heel klein beetje c# en java heb ik helemaal geen ervaring mee(schrijven). Maar ik vind ze gewoon heel veel op elkaar lijken van buiten, hoe het van binnen in elkaar zit weet ik niet :)

Krekker 28-01-2004 20:23

Yo, wat een 1337 talk hier.

Ik volgde het na de eerste 3 regels al niet meer.

Droyd 29-01-2004 00:38

Citaat:

w4s4 cr4ft schreef op 28-01-2004 @ 21:23:
Yo, wat een 1337 talk hier.
Ik volgde het na de eerste 3 regels al niet meer.

Op enkele opmerkingen na werden gewoon enkele basisprincipes van programmeren aangehaald.(weten wat overloading inhoudt en welke mogelijkheden en karakteristieken talen hebben)
Je zou sommige mensen moeten horen die asm (machinetaal) beheersen...Das meestal andere koek ;)

Dr HenDre 29-01-2004 09:06

Citaat:

w4s4 cr4ft schreef op 28-01-2004 @ 21:23:
Yo, wat een 1337 talk hier.

Ik volgde het na de eerste 3 regels al niet meer.

waarom post je dan iets :rolleyes: Als je iets niet snapt, vraag dan wat je neit snapt, of zeg helemaal nix

Krekker 30-01-2004 16:13

Citaat:

Dr HenDre schreef op 29-01-2004 @ 10:06:
waarom post je dan iets :rolleyes: Als je iets niet snapt, vraag dan wat je neit snapt, of zeg helemaal nix
nou sorry hoor :o :o


Alle tijden zijn GMT +1. Het is nu 16:58.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.