Re: The Language I want
- From: "Aaron Gray" <ang.usenet@xxxxxxxxx>
- Date: Sat, 7 Mar 2009 22:09:24 -0000
"Aaron Gray" <ang.usenet@xxxxxxxxx> wrote in message
news:71fi2fFkkubpU1@xxxxxxxxxxxxxxxxxxxxx
I want a OO language with :-- interfaces, ala Java
- multiple inheritance - with fine grain control
- abstract classes to facilitate plugin like behaviour, they can
match
methods and also allow addition of new code and "plugin" code, but are not
instantiable in themselfs.
- public, protected, and private, ala C++
- C++ style casts to access "hidden" members
- class constructors and destructors as well as object constructors
and
destructors
- most things/'units' can exhibit inheritance, for example modules
can
inherit other modules so extending them.
- generics/parameterized polymorphism- signatures to allow restricted generacism as well as 'super', and
'sub',
'parent' and, 'child' restrictors
- templates or hygenic macros- by devorcing templates from generacism you end up withalot more
power,
there is no way of adding any extra value to C++ templates and hence there
usefullness is restricted and its back to C preprocessor.
- anything (any 'unit' of expression) should be able to be templated
- types
- classes
- functions
- methods
- signatures
- objects
- algebraic datatypes- cartesian products
- disjoint unions
- tupes
- records
- top, bottom, undefined, unknown
- pattern matchingfor algebraic datatypes
- extensible syntaxmodules may define syntax extensions to other modules but not
use them within them selfs, they have to be imported (and not included, but
they maybe inherited and the syntax extensions used).
- multimethods, both global and on classes
- term rewritting
- units
program code is expessed as 'units'
types inheriting from unit are :-
- declarations
- expressions
- initializers
- namespaces
- modules
modules may import, include or inherit other modules
modules contain units
- packages
packages may import, include or inherit other packages
packages contain modules and may contain other packages.
- pure functions
these maybe included in by including the right 'functional'
extension module
and maybe used in free, namespace, nested function, method or in
classes.
- curried functions
this would complete the whole model, but is a very tall order, and
maybe out of bounds for what is expressable in the languages model.
- process objects
Anything missing other than coroutines, which I hate so will no include.
Any contenders ?
We will forget about the contenders :)
Nemerle is the nearest I know of.
Aaron
.
- Follow-Ups:
- Re: The Language I want
- From: Marco van de Voort
- Re: The Language I want
- From: Dmitry A. Kazakov
- Re: The Language I want
- From: James Harris
- Re: The Language I want
- References:
- The Language I want
- From: Aaron Gray
- The Language I want
- Prev by Date: Re: What's lacking: a good intermediate form
- Next by Date: Re: What's lacking: a good intermediate form
- Previous by thread: Re: The Language I want
- Next by thread: Re: The Language I want
- Index(es):