>> Website Resources
.. >> Library: TechXchange
.. .. >> TechXchange: Embedded Software
.. .. .. >> Topic: Ada and SPARK
What’s the difference between SPARK 2014 and Apache Spark? Actually, the answer is quite easy. SPARK 2014 is a programming environment based on the Ada programming language. Apache’s open-source SPARK project is an advanced, Directed Acyclic Graph (DAG) execution engine.
Both are used for applications, albeit of much different types. SPARK 2014 is used for embedded applications, while Apache SPARK is designed for very large clusters. Here is a quick overview of each just in case you need more details.
SPARK 2014
SPARK 2014 is the latest incarnation of the SPARK programming environment. The language is a subset of the Ada 2012 programming language that includes features like contract programming.
SPARK 2014 consists of a programming language that is a subset of Ada, a design methodology and a verification toolset (see figure). The language subset is chosen so that applications written in SPARK 2014 and be proven to match the specification that is part of the program. It is designed for low defect software that is necessary for programming in general, as well as safety- and security-related applications such as avionics. The matching toolset utilizes the information within application code to statically analyze the program and verify that it matches the specification.
SPARK 2014 consists of a programming language that is a subset of Ada, a design methodology and a verification toolset.
SPARK 2014 is ideal for embedded applications—even those targeting embedded microcontrollers. The subset of Ada retains many of the useful features of Ada, like its packaging system, while remaining compact enough to be more easily understood.
Apache Spark
Apache Spark is a Java virtual machine (JVM)-based cluster framework that runs on top of platforms like Hadoop or Mesos. It can also run on its own and in the cloud. Spark provides programmers with a resilient distributed dataset (RDD). The RDD is a read-only multiset of data items that is distributed throughout the cluster.
Spark Core provides the basic distributed task dispatching system. It supports JVM-based languages like Scala, Java, and R. The Core supports Spark SQL. It is a domain-specific language for manipulating DataFrames, a data abstraction for structured and semi-structured data. Of course, it provides SQL semantics. The Spark Streaming system moves data from Spark data sources and processes the information. Internally it does this in small batches. The other two major pieces to Spark are the MLlib machine learning library and GraphX. The latter is a graph processing framework.
SPARK is a common term adopted by a number of applications, platforms, etc. SPARK 2014 and Apache SPARK are just two; most are as different as these two systems. For example, the Particle Spark Core is a Wi-Fi development kit based on Texas Instruments’ CC3000 chip.
>> Website Resources
.. >> Library: TechXchange
.. .. >> TechXchange: Embedded Software
.. .. .. >> Topic: Ada and SPARK