MiniD dsource project set up

James Dunne james.jdunne at gmail.com
Mon Jun 26 11:36:23 PDT 2006


Jarrett Billingsley wrote:
> Link: http://www.dsource.org/projects/minid
> 
> == What is MiniD? ==
> 
> MiniD is a statically-typed, object-oriented scripting language based on D 
> and designed with D in mind as the host language.  It takes some features 
> from other scripting languages as well, such as static closures, generators, 
> and coroutines.  One of the main ideas behind making it D-based is an almost 
> seamless integration of scripting into the host program, so that native code 
> can very easily call script code and vice versa.
> 
> == How far along is it? ==
> 
> It's mostly just a grammar and some language specs right now; however, 
> there's a reference compiler in the works which does the lexical and 
> syntactic passes, and has the beginnings of the semantic pass as well.  It 
> can be found into the repo.
> 
> == Is it open?  Licensing? ==
> 
> It's open.  Licensing?  It could be public domain for all I care.  If some 
> of you more experienced OSS'ers have some comments on that, or if I should 
> use something else (like zlib or MIT license), I'd like to hear it.  In 
> fact, if someone wanted to bring it up on the MiniD forum on dsource, that'd 
> be great.
> 
> The development is also open.  I'd love to hear any ideas and suggestions 
> for features and other areas of development.
> 
> == Why MiniD? ==
> 
> It started as a sort of for-fun project, but eventually developed into 
> something of a learning project.  I wanted to see what it was like to design 
> and implement a compiler and VM.  Maybe I'll end up with a language that 
> people want to use; maybe not.  In any case, it's my idea that perhaps by 
> offloading things like typechecking into the compiler, the VM will be 
> somewhat faster.  Maybe.  I hope :) 
> 
> 

A cool project!  I'm also developing my own language.  A few quick notes 
after browsing through the docs on Trac:

1) Fix /wiki/LanguageSpec/Lexical section after Tokens, a sentence is 
broken.

2) With the escape sequences in string literals, how would I go about 
putting the number one after an ASCII character #1? \11?

3) Good to see the ability to define binary integer literals; they're 
immensely useful

4) Multiple setter functions allowed for properties (and seem to be 
required to have at least one) but only one getter function is allowed 
and is optional?  Why is this?

5) Regular assignment on /wiki/LanguageSpec/Expressions:  Is it a good 
idea to treat x = obj.prop = 4; as two separate expressions?  You're 
sort-of violating the general rule to not evaluate the property more 
than once.  Why not have the implementation of the setter functions 
return the value that was set?

6) Operation assignments: you don't state that you're going to check for 
the same setter/getter function call signature for a property, you just 
say that the property must have them both set.

7) So custom defined objects cannot be passed in varargs functions?

I would recommend renaming 'def' to 'local', just as it's more 
aesthetically pleasing to me.  Also, why do you have the 'def' keyword 
as the starter to function parsing in addition to global variable 
parsing, would you not use a separate keyword 'function' for that?

It would be nice to have generics implemented in a scripting language :)

-- 
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/MU/S d-pu s:+ a-->? C++++$ UL+++ P--- L+++ !E W-- N++ o? K? w--- O 
M--@ V? PS PE Y+ PGP- t+ 5 X+ !R tv-->!tv b- DI++(+) D++ G e++>e 
h>--->++ r+++ y+++
------END GEEK CODE BLOCK------

James Dunne



More information about the Digitalmars-d-announce mailing list