If the words "Symbolic Instruction" in the name sound familiar, they should. ASIL (pronounced "a-sill") was largely inspired by BASIC. However, instead of starting with a modern verison of BASIC, I started with AppleSoft. Why? Well, ASIL was born in the early 1990s while I was in college. I knew AppleSoft quite well as it was my first programming language. ASIL nearly died then as the compiler technology wasn't up to the job. Now, I figure those compilers might be able to do the job. ASIL now incorporates features from C++, C#, modern BASICs, and Java.
Yet, if you look at sample code, it clearly isn't any of those. In fact, even though it's "derived from BASIC", it's relationship to modern BASIC dialects like VB is more like a very distant cousin. You might have troubles calling "BASIC" once you see sample code.
We have an IRC channel: ircs://irc.freenode.net/asil-language. Those running the ChatZilla IRC client can use ircs://freenode/asil-language instead.
Features
- Mandatory exception handling (like Java)
- Properties (like .NET lanuages)
- True object oriented features
- Primitive types are classes (like .NET)
- Pure virtual members of classes
- Multiple derivation
- Scope controlled by indentation
- Procedure parameters can be by reference or instance
- Reference/out parameters
- Overridable operators
- Complex statements (like a custom FOR loop)
- Delegates (work like function pointers in C)
- .NET style event handling
- Varaible syntax that you control when declaring a procedure
- Type-safe unions
- Bitfields
- Full featured generics
- Type aliases
- Enum types can be based on either primitives or structures
- True variant type
- Full featured reflection system
- .NET-like Attribute system for introspection
- Namespaces can derive from each other
- Modules can deerive from each other
- Data can be stored by value or by reference
- SASIL derivative is statically-typed for situations where you need a strongly typed language
- DASIL derivative is dynamically-typed for scripts and supports undeclaring some identifiers
- Full conditional compilation support
- Baked in set types