0% found this document useful (0 votes)
876 views11 pages

A Simple BASIC Interpreter Written in C

A Simple BASIC Interpreter Written in C
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
876 views11 pages

A Simple BASIC Interpreter Written in C

A Simple BASIC Interpreter Written in C
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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