User loginNavigation |
On Mixing Static Typing, Dynamic Typing and Values
In the Cat language I found it neccessary to have primitives which have embedded values. For example
store#N would place the value on the top of the main stack into the Nth position in the auxiliary stack. There are currently a couple of other primitives like this.
Upon examination, this syntax yields a limitation: you can't use an expression in place of N. For example: When I step back and look at this differently, I am embedding compile-time expressions between angled brackets (lt; and >). This makes the language specification more complex because the semantics for compile-time code are necessarily different from those of run-time code. This leads me to ask the question, shouldn't I allow compile-time or type expressions to be expressed using precisely the same syntax as the rest of the language? In other words why not place types on the stack, and if a type-expression can be resolved at compile-time, then let the compiler do so. The only problem that I can see is that some expressions are not resolvable at compile-time, but this would simply lead to dynamic type expressions. I can see people potentially getting confused about what expressions can be evaluated at compile-time, and which ones are evaluated at run-time, but does it really matter? It seems to me at this point that freely intermixing static and dynamic typing and evaluation is the right thing to do, but I'd like some feedback and other points of view. By cdiggins at 2006-08-09 15:34 | LtU Forum | previous forum topic | next forum topic | other blogs | 5459 reads
|
Browse archives
Active forum topics |
Recent comments
37 weeks 3 days ago
37 weeks 3 days ago
37 weeks 3 days ago
1 year 7 weeks ago
1 year 11 weeks ago
1 year 13 weeks ago
1 year 13 weeks ago
1 year 16 weeks ago
1 year 20 weeks ago
1 year 20 weeks ago