Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Atomic Domain Languages (ADL) is a strongly typed system.

 

Image Removed

 

Atomic Domain Languages focuses on real-world practices for building thing applications on the cloud as well as distributed and concurrent computing environments.

Similar to traditional programming languages like C, C#, etc there is a notion of static types i.e. the basic types that are defined by the TQLEngine out-of-the box. The major advantage of ADL is the flexibility and productivity it offer to create dynamic types using simple syntax of Def XML Named Element. If you are coming from a dynamic type language, ADL will solve your performance and maintainability problems while maintaining productivity.

Types are defined in the context of Thing Definition Language (TDL). Out-of-the box TDL types can be categorized into three groups all inheriting from Entity:

Code Block
languagexml
titleRoot of all types
linenumberstrue
 <Def name="Entity" documentation="The root of all types"/>
  • Atom - This is the root for all primitive types
  • System - Marker of all system types.
  • Container - Root of all composite types

 

Image Added

 

List of Primitive Types inherited from Atom

 

Code Block
languagexml
titleAtom Types
linenumberstrue
<Def name="String" inherits="Atom"/>
<Def name="Binary" inherits="Atom"/>
<Def name="Boolean" inherits="Atom"/>
<Def name="Integer" inherits="Atom"/>
<Def name="Number" inherits="Atom"/>
<Def name="Short" inherits="Atom"/>
<Def name="Long" inherits="Atom"/>
<Def name="Byte" inherits="Atom"/>
<Def name="Float" inherits="Atom"/>
<Def name="Double" inherits="Atom"/>
<Def name="Decimal" inherits="Atom"/>
<Def name="DateTime" inherits="Atom" format="$SimpleDateFormat()"/>
<!-- Derived from Basic Primitives -->
<Def name="Clob" inherits="String"/>
<Def name="Blob" inherits="Binary"/>
<Def name="Date" inherits="DateTime"/>
<Def name="Time" inherits="DateTime"/>
<Def name="Duration" inherits="Time"/>
<Def name="YearDay" inherits="Integer"/>
<Def name="MonthDay" inherits="Integer"/>
<Def name="WeekDay" inherits="Integer"/>
<Def name="YearMonth" inherits="Integer"/>
<Def name="Year" inherits="Integer"/>
<Def name="Month" inherits="Integer"/>
<Def name="Day" inherits="Integer"/>