Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

Dao, a New Programming Language Supporting Advanced Features With Small Runtime 404

New submitter NeoHermit writes "This language (Dao) has never been mentioned on Slashdot before, but it might be interesting to many people here. As it has recently become feature-complete and just made its first beta release, it may be the right time to mention it here. Dao is an optionally-typed programming language that supports many advanced features with a small runtime. The feature list is probably as long as that of Python, but they are supported by a much smaller runtime (somewhere between Lua and Python, but closer to Lua). Besides optional typing, the other major features that worth mentioning include: built-in support for concurrent programming for multicore computers, very friendly C programming interfaces for embedding and extending, a LLVM-based JIT compiler, a Clang-based module for embedding C/C++ codes in Dao, and a Clang-based tool for automatic binding generation from C/C++ header files. You can also see many familiar features from other languages."
This discussion has been archived. No new comments can be posted.

Dao, a New Programming Language Supporting Advanced Features With Small Runtime

Comments Filter:
  • by girlintraining ( 1395911 ) on Tuesday May 28, 2013 @11:55PM (#43847119)

    Someone better go dig Strousoup out because he ain't dead, yet.

    Ack, I meant Dennis Ritchie, the inventor of the C programming language, not Stroustrup, who invented C++. My bad...

  • by Pseudonym ( 62607 ) on Wednesday May 29, 2013 @02:39AM (#43847827)

    It seems that way because on a typical platform the C virtual machine is a very thin layer on top of the operating system and CPU. Its implementation is almost all initialisation and shutdown, and even then there's usually very little to do.

    If you don't believe me, I suggest you try it. Even if you don't use the standard entry point (avoiding the need to process argc/argc/envp) or exit point (avoiding the need for atexit), at the very least you'll need to set up a stack before you transfer control to C code for the first time. That is initialising a virtual machine.

  • by White Flame ( 1074973 ) on Wednesday May 29, 2013 @03:29AM (#43848039)

    That's an assumption that hasn't been true since the 1950s. Common Lisp has full structures, OO classes & objects (and meta classes for defining the OO system itself and extending it), multimethod dispatch, complex & rational numbers, full Unicode strings, etc.

  • by gigaherz ( 2653757 ) on Wednesday May 29, 2013 @04:24AM (#43848229)
    Check C# 5.0, it meets most of the requirements in some form or another. Lambdas, Linq's meta-expressions and dynamic runtime allow for something rather close to functional and untyped code, the Generics are much nicer than java's and THe major feature of C# 5.0 is the async keyword for concurrency.

It's a naive, domestic operating system without any breeding, but I think you'll be amused by its presumption.

Working...