Simple Declarative Language
Encyclopedia
The Simple Declarative Language (SDL) is a cross-platform
declarative programming language
used for defining basic data structure
s such as lists, maps, and trees of typed data in a compact, easy to read representation.
If two systems need to exchange data, the easiest way to do this is to pass the data as text since most systems can parse and process a textual input. The format of the text (indenting, keywords, special characters) is used to describe the data being exchanged. SDL is one such format - other examples of human-readable
data
serialization
formats commonly in use include XML
, JSON
and YAML
. Structured text is also used for storing data to disk - see NoSQL Document Stores and Document Oriented Databases.
A simple application programming interface
(API) allows reading, writing and accessing all the data structures using one class. For property files, configuration files, logs and simple serialization requirements, SDL is designed to be an alternative to Extensible Markup Language (XML
) that is better suited to compact type-aware representations of data structures. Implementations are available for Java
, .NET and Ruby
. Objective-C
and Go
ports are underway.
SDL is distributed under the LGPL open source license. It was contributed to the open source
community by Ikayzo which also provides commercial support.
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...
declarative programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
used for defining basic data structure
Data structure
In computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.Different kinds of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks...
s such as lists, maps, and trees of typed data in a compact, easy to read representation.
If two systems need to exchange data, the easiest way to do this is to pass the data as text since most systems can parse and process a textual input. The format of the text (indenting, keywords, special characters) is used to describe the data being exchanged. SDL is one such format - other examples of human-readable
Human-readable
A human-readable medium or human-readable format is a representation of data or information that can be naturally read by humans.In computing, human-readable data is often encoded as ASCII or Unicode text, rather than presented in a binary representation...
data
Data
The term data refers to qualitative or quantitative attributes of a variable or set of variables. Data are typically the results of measurements and can be the basis of graphs, images, or observations of a set of variables. Data are often viewed as the lowest level of abstraction from which...
serialization
Serialization
In computer science, in the context of data storage and transmission, serialization is the process of converting a data structure or object state into a format that can be stored and "resurrected" later in the same or another computer environment...
formats commonly in use include XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
, JSON
JSON
JSON , or JavaScript Object Notation, is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects...
and YAML
YAML
YAML is a human-readable data serialization format that takes concepts from programming languages such as C, Perl, and Python, and ideas from XML and the data format of electronic mail . YAML was first proposed by Clark Evans in 2001, who designed it together with Ingy döt Net and Oren Ben-Kiki...
. Structured text is also used for storing data to disk - see NoSQL Document Stores and Document Oriented Databases.
A simple application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
(API) allows reading, writing and accessing all the data structures using one class. For property files, configuration files, logs and simple serialization requirements, SDL is designed to be an alternative to Extensible Markup Language (XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
) that is better suited to compact type-aware representations of data structures. Implementations are available for Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, .NET and Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
. Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...
and Go
Go (programming language)
Go is a compiled, garbage-collected, concurrent programming language developed by Google Inc.The initial design of Go was started in September 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. Go was officially announced in November 2009. In May 2010, Rob Pike publicly stated that Go was being...
ports are underway.
SDL is distributed under the LGPL open source license. It was contributed to the open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
community by Ikayzo which also provides commercial support.
Example
people location="Tokyo" {
person "Akiko" friendly=true {
hobbies {
hobby "hiking" times_per_week=2
hobby "swimming" times_per_week=1
}
}
person "Jim" {
hobbies {
hobby "karate" times_per_week=5
}
}
}