
"Brett C." <bac@OCF.Berkeley.EDU> writes:
So, anyone have any ideas? The best one that I can think of is optional type-checking. I am fairly open to ideas, though, in almost any area involving language design.
Did you explicitly mean language *design*? Because there might be areas of research relevant to language implementation, in terms of efficiency, portability, etc. Here are some suggestions: - memory management: attempt to replace reference counting by "true" garbage collection - threading: attempt to provide free threading efficiently - typing: attempt to provide run-time or static type inference, and see whether this could be used to implement some byte codes more efficiently (although there is probably overlap with the specializing compilers) - floating point: provide IEEE-794 (or some such) in a portable yet efficient way - persistency: provide a mechanism to save the interpreter state to disk, with the possibility to restart it later (similar to Smalltalk images) On language design, I don't have that many suggestions, as I think the language itself should evolve slowly if at all: - deterministic finalization: provide a way to get objects destroyed implicitly at certain points in control flow; a use case would be thread-safety/critical regions - attributes: provide syntax to put arbitrary annotations to functions, classes, and class members, similar to .NET attributes. Use that facility to implement static and class methods, synchronized methods, final methods, web methods, transactional methods, etc (yes, there is a proposal, but nobody knows whether it meets all requirements - nobody knows what the requirements are) - interfaces (this may go along with optional static typing) Regards, Martin