Related articles |
---|
Visual Basic as an Implementation Language ksalter@execulink.com (Steven Salter) (1998-09-26) |
Re: Visual Basic as an Implementation Language qjackson@wave.home.com (Quinn Tyler Jackson) (1998-09-29) |
Re: Visual Basic as an Implementation Language brennan@home.com (Michael J. Brennan) (1998-09-29) |
Re: Visual Basic as an Implementation Language dwight@pentasoft.com (1998-09-29) |
From: | Steven Salter <ksalter@execulink.com> |
Newsgroups: | comp.compilers |
Date: | 26 Sep 1998 01:46:07 -0400 |
Organization: | Compilers Central |
Keywords: | Basic, question |
I created a simple language to allow the users of an application to
specify some calculations they would like performed. For now, they
never see the language, just a fancy front end from which they pick
fields, functions and operators, and enter numbers.
Since the application is written in Visual Basic, I wrote the
interpreter in VB also. It takes the expression, looks up the
appropriate values in the database and gives back an answer, or raises
and error if there is no appropriate record in the database.
Upon further consideration, I realize that there are several other
things I need to do with those "simple expressions". Is there any
material available on compiler construction using Visual Basic as an
implementation language, especially using its OO features. My current
design says that I will need:
- A pre-processor, or something, because an expression may contain a
reference to another expression, such as:
A = B + C
B = C * D
E = A * 2
which must be expanded to E = ((C*D) + C) * 2 for analysis
(optimization?). All of the expressions are stored in the database.
- A way of making sure that there are no circular dependencies, such as
A = B + C
B = 40 - A
- A way of getting a set of things that need to be looked up, rather
than the list that is currently used.
If there are no references, does anyone have any experience they could
share?
Thanks
Steven Salter
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.