You are on page 1of 11

15/12/2015

A simple BASIC Interpreter written in C

Search
News:
InstructionsforcreatingAndroidApps:
http://www.qb64.net/forum/index.php?topic=13162.0

Home

Help

Search

Login

Register

QB64C ommunity Development Development(Moderators:Galleon,OlDosLover,SMcNeill,Kobolt)


AsimpleBASIC InterpreterwritteninC

previousnext
Pages:[1]

Author

P RI N T

Topic:AsimpleBASICInterpreterwritteninC(Read6253times)
AsimpleBASICInterpreter
writteninC

OlDosLover
Moderator
HeroMember

Posts:5329
OlDosLover

on:June22,2013,04:42:24am

Hiall,
InmytravelsicameacrossaverysmallCBasicIntrepetor.Whatwouldbe
reallygoodwouldbeifsomeoneknowledgableinCcouldconvertthistoQB64.
HeretheoriginalCcode.
Code:[Se le ct]
- Line editor using line re-entry.
- A line number with nothing following it, deletes the line.
- Line number range
1-10000
Input format:
- ALL INPUT MUST BE UPPERCASE.
- No space is allowed before the line number.
- Exactly one space is needed between the OLD or SAVE command and
the filename.
No error checking is performed.
The message 'core dumped' or 'bus error'
signifies a syntax or semantic error.
*/

Hereisanotherbugcorrectionversionofabove.
Code:[Se le ct]

http://www.qb64.net/forum/index.php?topic=11134.0

1/11

15/12/2015

RUN

A simple BASIC Interpreter written in C

Be sure not to run out of fuel!

Selected notes from the author:


This is the DDS-BASIC Interpreter (Version 1.00).
Immediate commands:
RUN LIST NEW OLD filename
BYE SAVE filename
Program commands:
variable names a to z variables initialized to 0 on RUN

Thiscameaboutfromthispost:
http://forum.basicprogramming.org/index.php/topic,2954.0.html
OlDosLover.
Logged

Re:AsimpleBASICInterpreter
writteninC

Amaysim
Jr.Member

Reply #1on:June22,2013,06:56:08am

WhatsaBasicIntrepetorandwhatdoesitdo?
Ama
Logged

Posts:54

Re:AsimpleBASICInterpreter
writteninC

DSMan195276
HeroMember

Reply #2on:June22,2013,12:01:26pm

SorryOlDos,
Posts:2113

Quote

Yes

thisisa1990IO C C C (obfuscate dC code )e ntry

There'snexttonohopeofconvertingthisunlessthereisanunobfuscated
versionofthecodesomewhere.
Matt
Logged
"C astyourcaresontheLordandhewillsustainyouhewillneverlettherighteousbe
shaken"Psalm55:22
QB64LinuxInstaller

Re:AsimpleBASICInterpreter
writteninC

Galleon
Administrator
HeroMember

Reply #3on:June22,2013,05:19:12pm

Thetroubleisthattheinterpreterwouldbesolimitedthatyou'dbebetteroff
rollingyourownanyway.InfactI'veseenaninterpreterwritteninQBcode,it
mayevenbeintheexamplessomewhere.
Posts:5464

hereitis:

http://www.qb64.net/forum/index.php?topic=11134.0

2/11

15/12/2015

A simple BASIC Interpreter written in C

QBForever
Code:[Se
le
ct]
IF ACCEP
T(
"-") THEN
FACTOR% = -FACTOR%
EXIT FUNCTION
END IF
IF ACCEPT("(") THEN
FACTOR% = EXPRESSION
CALL EXPECT(")")
EXIT FUNCTION
END IF
IF LEFT$(TOK$, 1) >= "0" AND LEFT$(TOK$, 1) <= "9" THEN
FACTOR% = NUM
CALL GETSYM
EXIT FUNCTION
END IF
IF LEFT$(TOK$, 1) >= "A" AND LEFT$(TOK$, 1) <= "Z" THEN
FACTOR% = VARS(GETVARINDEX)
EXIT FUNCTION
END IF

Logged
Somethingold...Somethingnew...Somethingborrowed...Somethingblue...

Re:AsimpleBASICInterpreter
writteninC

OlDosLover
Moderator
HeroMember

Posts:5329
OlDosLover

Reply #4on:June22,2013,08:09:19pm

Hiall,
ThanksMattandGalleonfortheinput.Iwashopingthatthiswouldhelpus
gettoaninterpreterquicker,butalasiseenowthatisntso.
OlDosLover.
Logged

Re:AsimpleBASICInterpreter
writteninC

OlDosLover
Moderator
HeroMember

Posts:5329
OlDosLover

Reply #5on:June22,2013,10:10:04pm

Hiall,
Thelinkthatipostedistoasitewhereafellaredidthis.Hereishiswork.
Quote
Ilik e foolingaroundwithtinyinte rpre te rs.Alongtim e ago,IfoundDDSBASIC by
Diom idisSpine llis,awinne rinthe 1990IO C C C .Ide cide dafunproje ctwouldbe to
m odifyDDSBASIC ,addinge noughfe ature ssothatitcouldrun(whate lse )Tiny
StarTre k .So,Ididthe followingtothe originaldds.c:
R e m ove de noughobfuscationtoallowm odifications
AllBASIC k e ywordsare nowlowe rcase
Acce ptscom m andline input
Adde dasingle inte ge rarray:@
Adde dthe state m e ntcontinuationcharacte r:":"
Adde d'prom pt'oninputstate m e nt
Enhance dprintstate m e nt
Adde drnd(),asc()andabs()functions
C onve rte dthe re cursive de sce nte x pre ssionparse rtopre ce de nce clim bing
Enhance d'if'toallowstate m e ntstofollow(inste adofjust"ife x prthe nline
num be r")
Inthe spiritofthe originalDDS,noe rrorche ck ingyou've be e nwarne d!
Andhe re itis(stillpre ttysm allatonly318line sofcode ):
C ode :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype .h>
e num {false ,true }
type de fchar*C HAR P

http://www.qb64.net/forum/index.php?topic=11134.0

3/11

15/12/2015

A simple BASIC Interpreter written in C


int*gosub_stack p,gosub_stack [999],line [999],line _off[999],
lim [999],var[999],line num ,i,inquote
int*gosub_foop,gosub_foo[999],at[999]
charbuff[999],two[2]
C HAR Pm [12*999],p,q,s,d//puse dase x prptr
FILE*f
#if!de fine d(random ize )
#de fine random ize ()
#e ndif
#if!de fine d(random )
staticintrandom _se e d=0
staticintrandom (intn){
random _se e d=random _se e d*1103515245+12345
re turn((((random _se e d/65536)%32768)&0x 7fffffff)%n)
}
#e ndif
intfindop(charop){
switch(op){
case '=':re turn1
case '#':re turn1//<>,note qual
case '<':re turn2
case '>':re turn2
case '$':re turn2//<=
case '!':re turn2//>=
case '+':re turn3
case '':re turn3
case '*':re turn4
case '/':re turn4
}
re turn1
}
inte valbinary(charop,intl1,intl2){
switch(op){
case '=':re turnl1==l2
case '#':re turnl1!=l2//<>,note qual
case '<':re turnl1<l2
case '>':re turnl1>l2
case '$':re turnl1<=l2//<=
case '!':re turnl1>=l2//>=
case '+':re turnl1+l2
case '':re turnl1l2
case '*':re turnl1*l2
case '/':re turnl1/l2
}
re turn0
}
inte x pr(intpre c){
into,this_pre c
if(*p==''){
p++
o=e x pr(999)
}e lse if(isdigit(*p)){
o=strtol(p,&p,10)//can'tuse 0forbase ,be cause ofhe x pbm .
}e lse if(*p=='('){
++p
o=e x pr(0)
++p
}e lse if(*p=='@'){//@(e x p)
++p
o=at[e x pr(999)]
}e lse if(m e m cm p(p,"rnd",3)==0){//rnd(e x p)
p+=3
o=e x pr(999)
o=random (o)+1
}e lse if(m e m cm p(p,"abs",3)==0){//abs(e x p)
p+=3
o=abs(e x pr(999))
}e lse if(m e m cm p(p,"asc",3)==0){//asc("x ")
p+=5
o=*p
p+=3
}e lse

http://www.qb64.net/forum/index.php?topic=11134.0

4/11

15/12/2015

A simple BASIC Interpreter written in C


o=var[*p++]
while ((this_pre c=findop(*p))>0&&this_pre c>=pre c){
charop=*p++
o=e valbinary(op,o,e x pr(this_pre c+1))
}
re turno
}
voidprint_string(void){
intwidth
++p
width=strchr(p,'"')p
printf("%*.*s",width,width,p)
p+=width+1
}
//'print'[[#num ',']e x pr{','[#num ',']e x pr}][',']{':'stm t}e ol
//e x prcanalsobe alite ralstring
voidprint(void){
intprint_nl
print_nl=true
for(
{
intwidth=0
if(*p==':'||*p=='\0')
bre ak
print_nl=true
if(*p=='#'){
++p
width=e x pr(0)
if(*p==',')
++p
}
if(*p=='"')
print_string()
e lse
printf("%*d",width,e x pr(0))
if(*p==','||*p==''){
++p
print_nl=false
}e lse
bre ak
}
if(print_nl)
printf("\n")
}
voide nte rline (void){
char*s=buff
while (*s&&isspace (*s))
s++
line num =atoi(s)
if(m [line num ])
fre e (m [line num ])
if((p=strstr(s,""))!=NULL)
strcpy(m [line num ]=m alloc(strle n(p)),p+1)
e lse
m [line num ]=0
}
voidload(char*fn){
f=fope n(fn,"r")
while (fge ts(buff,999,f))
(*strstr(buff,"\n")=0,e nte rline ())
fclose (f)
}
voidrun(void){
intoffse t=0
gosub_stack p=gosub_stack
gosub_foop=gosub_foo
line num =1
for(i=0i<999var[i++]=0)

//se tstopointtofirstcharofline
while (line num ){

http://www.qb64.net/forum/index.php?topic=11134.0

5/11

15/12/2015

A simple BASIC Interpreter written in C


intif_cont
while ((s=m [line num ])==0)
line num ++
if(!strstr(s,"\"")){
while ((p=strstr(s,"<>"))!=0)*p++='#',*p=''
while ((p=strstr(s,"<="))!=0)*p++='$',*p=''
while ((p=strstr(s,">="))!=0)*p++='!',*p=''
}
//re m ove e x traspace s,line copie dtobuff
d=buff
while ((*two=*s)!='\0'){
if(*s=='"')
inquote ++
if(inquote &1||!strstr("\t",two))
*d++=*s
s++
}
inquote =*d=0
s=buff
line _proce sse d:
p=(s+=offse t)
offse t=if_cont=0
if(s[1]=='='){//assignm e nta=e x p
p=s+2
var[*s]=e x pr(0)
}e lse if(s[0]=='@'){//assignm e nt:@(e x p)=e x p
intndx
p=s+1
ndx =e x pr(999)//use highpre ctoforce e ndat')'
++p
at[ndx ]=e x pr(0)
}e lse
switch(*s){
case 'e '://e nd
case 's'://stop
line num =1
bre ak
case 'r'://re m andre turn
if(s[2]!='m '){
line num =*gosub_stack p//re turn
offse t=*gosub_foop
}
bre ak
case 'i'://input[constant_string,]varandif
if(s[1]=='n'){//input
inttm p
charin_buff[20]
d=p=&s[5]
if(*p=='"'){
print_string()
d=++p//sk ip','
}
tm p=*d
p=fge ts(in_buff,size of(in_buff)2,stdin)
var[tm p]=isdigit(*p)?e x pr(0):*p
p=++d
}e lse {//if
p=s+2
if(e x pr(0)){
p
if_cont=true
}e lse
p=0
}
bre ak
case 'p'://printstringande x pr
p=&s[5]
print()
bre ak
case 'g'://goto,gosub
p=s+4
if(s[2]=='s'){//gosub
*gosub_stack p++=line num
p++
}
line num =e x pr(0)1
if(s[2]=='s')//gosub
*gosub_foop++=(*p==':')?pbuff+1:0

http://www.qb64.net/forum/index.php?topic=11134.0

6/11

15/12/2015

A simple BASIC Interpreter written in C


p=0
bre ak
case 'f'://for
*(q=strstr(s,"to"))=0
p=s+5
var[i=s[3]]=e x pr(0)
p=q+2
lim =expr(0)
line=linenum
line_off=(*p==':')?pbuff+1:0
break
case'n'://next
d=s+4
p=d+1
if(++var[*d]<=lim[*d]){
linenum=line[*d]
offset=line_off[*d]
p=0
}
break
}
if(p&&*p&&(if_cont||*p==':')){
s=++p
gotoline_processed
}
if(!offset)
linenum++
}
}
intmain(intargc,char*argv[]){
intloaded=false
randomize()
m[11*999]="e"
if(argc>1){
load(argv[1])
buff[0]='r'
loaded=true
}
while(loaded||(puts("Ok"),gets(buff))){
loaded=false
switch(*buff){
case'r'://run
run()
break
case'l'://list
for(i=0i<11*999i++)
m&&printf("%d%s\n",i,m)
break
case'n'://new
for(i=0i<11*999i++){
if(m){
free(m)
m=0
}
}
break
case'b'://bye
return0
case's'://save
f=fopen(buff+5,"w")
for(i=0i<11*999i++)
m&&fprintf(f,"%d%s\n",i,m)
fclose(f)
break
case'o'://old
load(buff+4)
break
case0:
default:
enterline()
}
}
return0
}
Tocompile:gcctb.cOssotb.exe
AndhereisaversionofTinyStarTrekthatitcanrun:

http://www.qb64.net/forum/index.php?topic=11134.0

7/11

15/12/2015

A simple BASIC Interpreter written in C


Code:
5y=2999:input"Doyouwantadifficultgame?(yorn):",a
10print"Stardate3200:yourmissionis",:ifa=asc("y")y=999
15k=0:b=0:d=30:fori=0to63:j=rnd(99)<5:b=b+j
20m=rnd(y):m=(m<209)+(m<99)+(m<49)+(m<24)+(m<9)+(m<2):k=k+m
25@(i)=100*m10*jrnd(
:nexti:if(b<2)+(k<4)goto15
30print"todestroy",#1,k,"Klingonsin30stardates."
35print"Thereare",#1,b,"Starbases.":gosub160:c=0:h=k
40u=rnd(
:v=rnd(
:x=rnd(
:y=rnd(
45fori=71to152:@(i)=0:nexti:@(8*x+y+62)=4:m=abs(@(8*u+v9)):n=m/100
50i=1:ifnforj=1ton:gosub165:@(j+134)=300:@(j+140)=s:@(j+146)=t:nextj
55gosub175:m=m100*n:i=2:ifm/10gosub165
60m=mm/10*10:i=3:ifmforj=1tom:gosub165:nextj
65gosub145:gosub325:ifkgoto95
70print:print"Missionaccomplished.":ifd<3print"Boy,youbarelymadeit."
75ifd>5print"Goodwork...":ifd>9print"Fantastic!":ifd>13print"Unbelievable!"
80d=30d:i=h*100/d*10:print#1,h,"Klingonsin",d,"stardates.(",i,")"
85j=100*(c=0)5*c:print#1,c,"casualtiesincurred.(",j,")"
90print"Yourscore:",i+j:goto110
95ifd<0print"It'stoolate,thefederationhasbeenconquered.":goto110
100ife>=0goto120
105print"Enterprisedestroyed":ifhk>9print"Butyouwereagoodman"
110y=987:print:input"Anothergame?(yorn):",a:ifa=asc("y")goto5
115print"Goodbye.":end
120input"Captain?",a
121ifa=asc("g")goto180
122ifa=asc("l")goto200
123ifa=asc("s")goto220
124ifa=asc("p")goto260
125ifa=asc("r")goto420
126ifa=asc("w")goto465
127ifa=asc("t")goto555
128ifa=asc("q")goto110
130print"r=Reports=SR.sensorl=LR.sensor"
135print"g=Galaxymapp=Phasert=Torpedo"
140print"w=Warpengine**pleaseuseoneofthesecommands***":goto120
145fori=x(x>1)tox+(x< :forj=y(y>1)toy+(y<
150if@(8*i+j+62)<>2nextj:nexti:o=0:return
155ifo=0print"Sulu:'Captain,wearedockedatStarbase.'"
160e=4000:f=10:o=1:fori=64to70:@(i)=0:nexti:return
165s=rnd(
:t=rnd(
:a=8*s+t+62:if@(a)goto165
170@(a)=i:return
175print"Enterpriseinq",#1,u,v,"s",x,y:return
180gosub175:j=2:gosub375:ifigoto120
185print"ofgalaxymap":fori=0to7:print:print#1,i+1,":",:forj=0to7:m=@(8*i+j)
190print#4,(m>0)*m,:nextj:print:nexti:print"",:fori=0to7:print"..",:nexti:print
195print"",:fori=1to8:print#4,i,:nexti:print:print:goto120
200gosub175:j=3:gosub375:ifigoto120
205print:fori=u1tou+1:forj=v1tov+1:m=8*i+j9:a=0
210if(i>0)*(i<9)*(j>0)*(j<9)a=abs(@(m)):@(m)=a
215print#4,a,:nextj:print:nexti:goto120
220gosub175:j=1:gosub375:ifigoto120
225m=8*u+v9:@(m)=abs(@(m))
230print:fori=1to8:print#1,i,:forj=1to8:m=@(8*i+j+62):ifm=0print".",
235ifm=1print"K",
240ifm=2print"B",
245ifm=3print"*",
250ifm=4print"E",
255nextj:print:nexti:print"",:fori=1to8:print#2,i,:nexti:print:goto120
260j=4:gosub375:ifigoto120
265input"energized.Unitstofire:",a:ifa<1goto120
270ifa>eprint"Spock:'Wehaveonly",#1,e,"units.'":goto120
275e=ea:ifn<1print"Phaserfiredatemptyspace.":goto65
280a=a/n:form=135to140:if@(m)=0goto290
285gosub295:print#3,s,"unitshit",:gosub305
290nextm:goto65
295ifa>1090print"...overloaded..":j=4:@(67)=1:a=9:gosub375
300i=@(m+6)x:j=@(m+12)y:s=a*30/(30+i*i+j*j)+1:return
305print"Klingonats",#1,@(m+6),@(m+12),:@(m)=@(m)s
310if@(m)>0print"**damaged**":return
315@(m)=0:i=8*u+v9:j=@(i)/abs(@(i)):@(i)=@(i)100*j:k=k1
320i=8*@(m+6)+@(m+12)+62:@(i)=0:n=n1:print"***destroyed***":return
325ifn=0return
330print"Klingonattack":ifoprint"StarbaseprotectsEnterprise":return
335t=0:form=135to140:if@(m)=0goto350
340a=(@(m)+rnd(@(m)))/2:gosub295:t=t+s:i=@(m+6):j=@(m+12)
345print#3,s,"unitshitfromKlingonats",#1,i,j
350nextm:e=et:ife<=0print"***bang***":return

http://www.qb64.net/forum/index.php?topic=11134.0

8/11

15/12/2015

A simple BASIC Interpreter written in C


355print#1,e,"unitsofenergyleft.":ifrnd(e/4)>treturn
360if@(70)=0@(70)=rnd(t/50+1):j=7:goto375
365j=rnd(6):@(j+63)=rnd(t/99+1)+@(j+63):i=rnd(
+1:c=c+i
370print"McCoy:'Sickbaytobridge,wesuffered",#2,i,"casualties.'"
375i=@(j+63):ifj=1print"Shortrangesensor",
380ifj=2print"Computerdisplay",
385ifj=3print"Longrangesensor",
390ifj=4print"Phaser",
395ifj=5print"Warpengine",
400ifj=6print"Photontorpedotubes",
405ifj=7print"Shield",
410ifi=0return
415print"damaged,",#1,i,"stardatesestimatedforrepair":return
420print"Statusreport:":print"Stardate",#10,3230d:print"timeleft",#7,d
425print"Condition",:ifoprint"Docked":goto445
430ifnprint"Red":goto445
435ife<999print"Yellow":goto445
440print"Green"
445print"Positionq",#1,u,v,"s",x,y:print"Energy",#12,e
450print"Torpedoes",#7,f:print"Klingonsleft",#3,k:print"Starbases",#6,b
455forj=1to7:if@(j+63)gosub375
460nextj:goto120
465j=5:gosub375:ifi=0print
470input"sectordistance:",w:ifw<1goto120
475ifi*(w>2)print"Chekov:'Wecantry2atmost,sir.'":goto470
480ifw>91w=91:print"Spock:'Areyousure,Captain?'"
485ife<w*w/2print"Scotty:'Sir,wedonothavetheenergy.'":goto120
490gosub615:ifr=0goto120
495d=d1:e=ew*w/2:@(8*x+y+62)=0
500form=64to70:@(m)=(@(m)1)*(@(m)>0):nextm
505p=45*x+22:g=45*y+22:w=45*w:form=1to8:w=wr:ifw<22goto525
510p=p+s:g=g+t:i=p/45:j=g/45:if(i<1)+(i> +(j<1)+(j>8)goto530
515if@(8*i+j+62)=0x=i:y=j:nextm
520print"**Emergencystop**":print"Spock:'Toerrishuman.'"
525@(8*x+y+62)=4:gosub175:goto65
530p=u*72+p/5+w/5*s/r9:u=p/72:g=v*72+g/5+w/5*t/r9:v=g/72
535ifrnd(9)<2print"***Spacestorm***":t=100:gosub360
540if(u>0)*(u<9)*(v>0)*(v<9)x=(p+972*u)/9:y=(g+972*v)/9:goto45
545print"**Youwanderedoutsidethegalaxy**"
550print"Onboardcomputertakesover,andsavedyourlife":goto40
555j=6:gosub375:ifigoto120
560iff=0print"empty":goto120
565print"loaded":gosub615:ifr=0goto120
570print"Torpedotrack",:f=f1:p=45*x+22:g=45*y+22:form=1to8
575p=p+s:g=g+t:i=p/45:j=g/45:if(i<1)+(i> +(j<1)+(j>8)goto585
580l=8*i+j+62:w=8*u+v9:r=@(w)/abs(@(w)):print#1,i,j,"",:goto585+5*@(l)
585nextm:print"...missed":goto65
590s=rnd(99)+280:form=135to140:if(@(m+6)=i)*(@(m+12)=j)gosub305
592nextm:goto65
595b=b1:@(l)=0:@(w)=@(w)10*r:print"Starbasedestroyed"
597print"Spock:'Ioftenfindhumanbehaviourfascinating.'":goto65
600print"Hitastar":ifrnd(9)<3print"Torpedoabsorbed":goto65
605@(l)=0:@(w)=@(w)r:ifrnd(9)<6print"Stardestroyed":goto65
610t=300:print"Itnovas***radiationalarm***":gosub360:goto65
615input"course(0360):",i:if(i>360)+(i<0)r=0:return
620s=(i+45)/90:i=is*90:r=(45+i*i)/110+45:goto625+5*(s<4)*s
625s=45:t=i:return
630s=i:t=45:return
635s=45:t=i:return
640s=i:t=45:return
Torun:
tbtrek.bas
Ifyouhappentomakeanychanges,I'dliketoseethem.

HereisalinktoacompiledversionforWinand
Linux.http://forum.basicprogramming.org/index.php?
action=dlattachtopic=2954.0attach=1389
OlDosLover.
Logged

OlDosLover

Re:AsimpleBASICInterpreter
writteninC

http://www.qb64.net/forum/index.php?topic=11134.0

9/11

15/12/2015

A simple BASIC Interpreter written in C

Moderator

Reply #6on:June25,2013,11:00:12pm

HeroMember

Posts:5329
OlDosLover

Hiall,
Cameacrossaninterestinglink:
https://sites.google.com/site/smallbasicinterpreters/
OlDosLover.
Logged

Re:AsimpleBASICInterpreter
writteninC

OlDosLover
Moderator
HeroMember

Posts:5329
OlDosLover

Reply #7on:June26,2013,12:17:11am

Hiall,
Here'sareferencebook.
https://dl.dropboxusercontent.com/u/10291175/SICP
Intrerpretor%20Book1.7z
OlDosLover.
Logged

Re:AsimpleBASICInterpreter
writteninC

OlDosLover
Moderator
HeroMember

Posts:5329
OlDosLover

Reply #8on:June26,2013,12:24:33am

Hiall,
Anotherknowledgeableresourcegroup.
http://tech.groups.yahoo.com/group/QDepartment/
OlDosLover.
Logged

Re:AsimpleBASICInterpreter
writteninC

qbguy
Sr.Member

Reply #9on:July01,2013,12:02:30pm

Posts:263
Quotefrom:OlDosLoveronJune26,2013,12:17:11am
Hiall,
He re 'sare fe re nce book .
https://dl.dropbox use rconte nt.com /u/10291175/SIC PIntre rpre tor%20Book 1.7z
O lDosLove r.

ThebookStructureandInterpretationofComputerProgramshasaPDFversion
athttp://sicpebook.files.wordpress.com/2012/11/sicp.pdf
andisavailableonlineathttp://mitpress.mit.edu/sicp/fulltext/book/book.html
Therearealsosomevideostogowithit.Itdescribesaninterpreteranda
compilerforScheme.
Logged

Pages:[1]

P RI N T

previousnext
QB64C ommunity Development Development(Moderators:Galleon,OlDosLover,SMcNeill,Kobolt)
AsimpleBASIC InterpreterwritteninC
Ju m p to : =>Development

http://www.qb64.net/forum/index.php?topic=11134.0

go

10/11

15/12/2015

A simple BASIC Interpreter written in C

SMF2.0.3|SMF2011,Sim ple Ma chine s


XHTML R SS W AP2

http://www.qb64.net/forum/index.php?topic=11134.0

11/11

You might also like