archives

The ideal style/system for namespaces.

I've been designing my own PL for a hobby for some time now, and I've gotten to the point where I need to start thinking about some kind of system to allow for organization of functions/constants/variables etc. The two systems that I feel I'm most familiar with are Perl's (namespaces largely by convention) and Java's (namespaces by enforcement). I'm curious what you guys might think about the topic and if there's things about some other system that are a must have or even something that is a complete mess and should be avoided at all costs for anything to be of any kind of practical use. So far I've {un,}fortunately been leaning towards having namespaces by enforcement BUT I don't think that is quite ideal since the language isn't intended to be purely object oriented and there isn't anything good to pick for enforcing a file name like there is in Java.

A bit about the language: I've been trying to design it to be as close to an ideal language for Applied Mathematics (I've been giving theoretical stuff some thought but I'm not sure how to accommodate it just yet) and Physics. Because of this it's been taking more of a functional design but not to the point where it ends up difficult to write any kind of general program in. It originally started as an open source clone of the Frink language/system but I've since decided that I didn't like its grammar (there's a few things in it that make it difficult if not impossible to parse with a yacc like parser); So I've been starting to take it into my own direction. There is an evaluator on the website but please be gentle on it since it runs it all on a VM at my house and the interpreter does have some issues with recursion (memory profile grows very fast). On the back end it uses PARI/GP to do the actual calculations so it can get higher precision floating point math along with complex math, etc.

You can read about the language and its development on my site at http://simcop2387.info/
please be gentle with me if I've accidentally put this post in the wrong place.

EDIT: made link from above.