Crystal
pjmlp
pjmlp at progtools.org
Thu Feb 28 13:18:31 PST 2013
On Thursday, 28 February 2013 at 08:22:45 UTC, thedeemon wrote:
> On Sunday, 17 February 2013 at 06:28:09 UTC, Ary Borenszweig
> wrote:
>> One time I asked in this newsgroup if it was possible to have
>> an "auto" keyword for function/method arguments. And... why
>> not make all functions/methods be templates on the type of its
>> arguments?
>>
>> I think nobody liked this idea. I said "Ruby is like this: you
>> never specify types in method definitions".
>>
>> I started thinking about this idea: a compiled language that
>> looked like a dynamic language. Is it possible?
>
> I think everyone who wants to create languages should first
> familiarize himself with ML family of languages and especially
> OCaml. It's got global type inference done right, you can write
> big programs never specifying types of arguments of functions,
> they all got inferred, and not just to first occurrence but to
> most general (polymorphic) form. The compiler is incredibly
> fast and generated code is pretty fast too (approximately as
> fast as Java).
>
> Things to learn: Damas-Hindley-Milner, structural typing, row
> polymorphism.
>
> So your questions are already answered ages ago: yes, it is
> possible to have static typing with conciseness of dynamic
> languages, speed of static languages and a fast compiler which
> inferences types.
>
> Also, knowing OCaml will make your life much easier as a
> compiler developer. Writing compilers is much much easier and
> more convenient in ML than in Ruby, I know it from first-hand
> experience, I did both in the past.
My university degree had a strong focus in programming languages.
We were not allowed to use ML, Lisp or Prolog for compiler design
classes because it would make the project too easy. :)
--
Paulo
More information about the Digitalmars-d-announce
mailing list