Distributed Application Specification Language (DASL) is a strongly typed programming language developed by Sun Microsystems Laboratories between 1999 and 2003. The language was a part of the Ace Project, with their main goal of enabling the rapid development of websites and web-based applications.

Being a domain-specific language, DASL defines an application as a domain model with one or more logical presentation models, which can generate a graphical user interface meaning that the user interface can interact with electronic devices from icons and audio indicators as the input-type.

DASL is mostly used to create business applications since it is aimed to express the semantics of a broad domain of executable applications precisely without any architecture-dependent details.

About Sun Microsystems, Inc.

They became popular very quickly with engineers, software developers, and scientists since they could have dedicated machines rather than sharing the more expensive mainframe computer systems.

In 2010, the company was purchased for an estimated price of $7.4 billion by Oracle Corporation, a global corporation that develops and markets computer software applications for businesses/companies.

About Oracle Corporation

In 2019, Oracle was the second-largest software company by revenue and market capitalization. Another way that the company creates revenue is to develop and build tools for middle-tier software, enterprise resource planning (ERP) software, human capital management (HCM) software, customer relationship management (CRM) software, and supply chain management (SCM) software.

Language Components of DASL

DASL/AUS: AUS meaning application usage specification. Uses sets of states and transitions that choreograph how the application uses the business objects. The AUS uses Java-like syntaxes to invoke business object methods during transitions. AUS also supports Java-like syntax, as does BOS for defining method bodies.

DASL/OQL: Implements a clean subset of the OQL query language for querying and changing the persistent store, where OQL is a standard defined by the subgroup of the Object Management Group (ODMG). By design, OQL is compatible with a subset of SQL and is required only for defining application tasks that specifically need it, such as retrieving a set of objects based on their attributes. Queries that are required for simple applications are deployed automatically by the DASL compiler.

What platforms utilize DASL?

Sun Microsystems was able to acquire the open-source database MySQL for $1 billion in 2008, which was very advantageous with MySQL being very popular, which is now also helping with the success of Oracle.

Oracle Corporation had actually filed a multibillion-dollar lawsuit against Google, Inc. since they had illegally used elements of Java when developing their Android operating systems for smartphones. But in 2016, a jury found that Google did not violate Oracle’s copyrights.

Benefits and Downsides of DASL

A small enterprise application in DASL can typically be completed with 8,000 to 10,000 lines of code, but in a 3rd generation language, it would have to be completed in around 200,000 lines of code. Another benefit of DASL is that it is independent of implantation technologies such as middleware and network topology.

Trends regarding DASL

Although it is quite strange that if there is an article that talks about DASL, it usually refers back to the Wikipedia page, meaning that the only true web page that talks about DASL are the Wikipedia page.

Sun Microsystems wanted to have a new approach to system architecture with DASL. They made it, so DASL does not make system architects obsolete. System Architectures can use DASL as leverage to encode their expertise of improved design patterns by writing new DASL deployment engines.

Today, DASL generators are being used to produce Rich Internet Applications, which are just web applications with many desktop applications. Examples are Adobe Flash and Microsoft Silverlight.

Example of DASL in code


<foreachStatement> ::= <scriptStatement>

::= remove <forIterationVariable> ;

::= $remove <forIterationVariable> ;

Simple for each statement that can be used to create an if statement for a certain object.


CHECK happyBoss ( Employee.salary <= Employee.manager.salary );

Condition used to ensure that an employee’s salary cannot be greater than a manager’s salary, which could help a business run smoothly.


Seattle Website Developer