SlideShare a Scribd company logo
1 of 22
Reflective
Language for
Communications
Systems
WInnComm 2014
Vince Kovarik, PhD
Chief Technology Officer
vince.kovarik@prismtech.com
• The following presentation presents personal
work performed by Vince Kovarik.
• It does not reflect any opinion, views,
products or capabilities of PrismTech.
Disclaimer
Slide 2
• Prior experience with knowledge representation
and reasoning techniques, e.g. Frames,
Conceptual Dependency, NETL, Cyc, OWL, etc.
– Expressive representation or reasoning capability but
often limited in domain or scope.
• Experience with object-oriented languages, e.g.
LISP/Flavors, LOOPS, CLOS, Smalltalk, Simula,
C++, Java, etc.
– Provides the association of state (variables) and
behavior (methods) within the concept of an object but
limited to current value and pure algorithmic behavior.
• Brittleness in existing programming languages,
including OO languages.
– Weak or no built-in representation of context
Origins
Slide 3
• Object-Oriented language paradigm but
extended to represent relationships and
events/actions as concrete entities.
• Incorporate a base set of objects, relations and
events and common semantic interpretations
within the base system.
• Prototype language as an extension of existing
OO Language.
• Evolutionary optimization of low-level structural
representation to improve performance.
• Provide capability to link to libraries for special
purpose code, device drivers, etc.
Basic Tenets/Objectives
Slide 4
Language Superstructure
Slide 5
class Object Hierarchy
«abstract»
Root
«abstract»
Object
«abstract»
Event
«abstract»
MetaClass
«abstract»
Relation
Instance
AttributeDef
Attribute
«struct»
BaseStructures::
MInstance
«struct»
BaseStructures::MEvent«struct»
BaseStructures::
MAttribute
«struct»
BaseStructures::MObject
«struct»
BaseStructures::MRelation
Language Superstructure
Base Structures
«instantiate»
0..*0..*
InstanceOf
1
InstanceOf
InstanceOfInstanceOf
InstanceOf
InstanceOf
0..*
«instantiate»«instantiate»«instantiate» «instantiate»
«instantiate»
«instantiate»
Base Structures
Slide 6
class Base Structures
«struct»
MObject
- attrDefs :list
- attributes :list
- constraints :list
- createBy :object
- daemons :list
- description :string
- hierarchy :list
- instanceNo :int
- instances :list
- instantiable :boolean = nil
- locked :boolean
- messages :list
- name :string
- persistent :boolean = t
- relations :list
- subclasses :list
- superclasses :list
- sysattributes :list
- sysrelations :list
- universalID :UUID
«struct»
MAttribute
- cardinality :int = 1
- computed :list
- constraint :list
- default :any
- description :string
- inherit :symbol = ako
- mandatory :boolean
- name :stirng
- stringName :string
- systemp :boolean = nil
- type :typeDef
- unversalID :octet
- UUID :octet
- visibility :symbol = PUBLIC
«struct»
MRelation
- autoAssert :boolean = nil
- createDelete :boolean
- domainCardinality :int = 1
- domainType :MObject = Root
- hornClause :list
- index :int
- inverse :object
- rangeCardinality :int = 1
- rangeType :MObject = Root
- rule :list
«struct»
MInstance
- attributes :Set
- constraints :int
- createdBy :int
- mClass :MObject
- name :String
- relations :Set
- universalID :int
«struct»
MEvent
- actions :OrderedSet
- agents :MObject
- objects :MObject
- postConditions :Set
- preConditions :Set
«struct»
MTime
- endInterval :int
- startInterval :int
• (def-class resource object
• :name "Resource"
• :instantiable nil
• :description "A physical or logical
element that is required or used by
another element to provide some
capability or function."
• :attributes (
• (id
• :cardinality 1
• :description "A unique identifier"
• )))
• (def-method (resource :start) ()
• ; This would link to a .so or .dll library
implementing the HW/Resource interface
and logic
• (format t "Processing started for ~a~%"
self))
Base Object Hierarchy
Slide 7
class Objects
Root
«abstract»
MetaObjects::Object
+ :save-to-file() :void
component
hardware-component
resource
discrete-resource
device
loadable-device
executable-device
software-interface fparam
composite-device
software-component
Base Relation Hierarchy
Slide 8
class Relations
Root
«abstract»
MetaObjects::
Relation
logicalrelation
loadedimages is-conneted-to SWComponents
hasMain
physicalrelation
dependencyrelation
• (defrelation SWComponents logicalrelation
• :name "->hasSWComponents->"
• :description "Sub-components of this component"
• :inverse SwComponentOf
• :inverseName "->isSWComponentOf->"
• :inverseDesc "Component which this component is a part of"
• :domainType software-component
• :rangeType software-component)
• So, what does any of this
have to do with
communications systems?
Slide 9
• Radio hardware
components are
defined as
subclasses of a
device.
• The composite-
device provides a
simple but effective
characterization of
a hierarchical
collection of
components.
Radio Domain Objects
Slide 10
class SDR_Domain
hardware-component
resource
Objects::dev ice
receiv er
transmitter
Objects::
composite-dev ice
transceiv er
DAC
DAC
Objects::
loadable-device
Objects::
executable-device
DSP
FPGA
GPP
Core-2-duo
ARM
V5-LX80
TI300
radio
• (setf swc-1
• (tell 'software-component :new
• :props '(
• (name "Math Library")
• (size 800000)
• (language "C")
• )))
• (setf swc-2
• (tell 'software-component :new
• :props '(
• (name "Tracking Main")
• (size 2000)
• (language "C")
• )))
Define Software Components
Slide 11
(setf swc-3
(tell 'software-component :new
:props '(
(name "IO Library")
(size 3400)
(language "ASM")
)))
(setf swc-4
(tell 'software-component :new
:props '(
(name "Rate 1/2 Viterbi Decoder")
(size 3000)
(language "VHDL")
)))
• (tell loaddev-1 :load swc-4)
• (tell loaddev-1 :describe)
• BeginInstance=SOFTWARE-COMPONENT-4
• InstanceOf->SOFTWARE-COMPONENT
• Name="SOFTWARE-COMPONENT-4"
• Attributes:
• NAME="Rate 1/2 Viterbi Decoder"
• SIZE=3000
• LANGUAGE="VHDL"
• Relations:
• LOADEDON->(V5-LX80-1)
• EndInstance=SOFTWARE-COMPONENT-4
Software Component Definition
Slide 12
• (tell swc-2 :assert 'swcomponents swc-1)
• (tell swc-2 :assert 'swcomponents swc-3)
•
• (setf testapp
• (tell 'application :new
• :props '(
• (name "Tracking Application")
• )))
• (tell testapp :assert 'hasMain swc-2)
Define Software Components
Slide 13
• (tell testapp :describe)
• BeginInstance=APPLICATION-1
• InstanceOf->APPLICATION
• Name="APPLICATION-1"
• Attributes:
• NAME="Tracking Application"
• Relations:
• HASMAIN->(SOFTWARE-COMPONENT-
2)
• EndInstance=APPLICATION-1
Define Software Components
Slide 14
• (tell swc-2 :describe)
• BeginInstance=SOFTWARE-COMPONENT-2
• InstanceOf->SOFTWARE-COMPONENT
• Name="SOFTWARE-COMPONENT-2"
• Attributes:
• NAME="Tracking Main"
• SIZE=2000
• LANGUAGE="C"
• Relations:
• SWCOMPONENTS->(SOFTWARE-COMPONENT-1 SOFTWARE-
COMPONENT-3)
• ISMAINOF->(APPLICATION-1)
• EndInstance=SOFTWARE-COMPONENT-2
Software Application Main
Slide 15
• (def-class V5-LX80 FPGA
• :name "Virtex 5 LX80"
• :description "A model of FPGA"
• :instantiable t
• :attributes (
• (numgates
• :default 60000)
• (maxClockRate
• :default 240)
• (maxImage
• :default 10000)
• (availImage
• :default 10000)
• ))
Hardware Component Definition
(setf loaddev-1
(tell 'V5-LX80 :new))
(tell loaddev-1 :describe)
BeginInstance=V5-LX80-1
InstanceOf->V5-LX80
Name="V5-LX80-1"
Attributes:
Relations:
EndInstance=V5-LX80-1
(tell loaddev-1 :get 'maximage)
10000
Slide 16
• (def-class lmr-radio radio
• :name "Land Mobile Radio"
• :description "A trunked, handheld radio used by public safety and first responders."
• :instantiable t
• :attributes (
• (minFreq
• :description "Minimum operating frequency"
• :cardinality 1
• :default 250.1
• :units MHz)
• (maxFreq
• :description "Maximum operating frequency"
• :cardinality 1
• :default 338.0
• :units MHz)))
• (tell 'lmr-radio :assert 'parts '(arm TI300 transceiver))
• (tell 'receiver :assert 'parts 'ad-24)
• (tell 'transmitter :assert 'parts 'class-c-PA)
“Defining” a Radio
Slide 17
• BeginClass:LMR-RADIO
• SuperClass->(RADIO)
• ClassType=CLASS
• ClassName="Land Mobile Radio"
• isLocked=NIL
• isInstantiable=T
• isPersistent=T
• InstancesCount=0
• AttributeDefinitions:
• MAXFREQ:
• Description="Maximum operating
frequency"
• Cardinality=1
• DefaultValue=338.0
• InheritRel=AKO
• DataType=NIL
“Defining” a Radio
Slide 18
MINFREQ:
Description="Minimum operating
frequency"
Cardinality=1
DefaultValue=250.1
InheritRel=AKO
DataType=NIL
Attributes:
Relations:
PARTS->(ARM TI300
TRANSCEIVER)
EndClass:LMR-RADIO
• (tell 'lmr-radio :print-hierarchy)
• PARTS hierarchy of:
• LMR-RADIO - "Land Mobile Radio"
• ..ARM - "ARM Processor"
• ..TI300 - "Texas Instruments 300 DSP"
• ..TRANSCEIVER - "Transceiver"
• ....V5-LX80 - "Virtex 5 LX80"
• ....ARM - "ARM Processor"
• ....TI300 - "Texas Instruments 300 DSP"
• ....TRANSMITTER - "Transmitter"
• ......CLASS-C-PA - "Class C Power Amplifier"
• ....RECEIVER - "Receiver"
• ......AD-24 - "24 bit ADC"
Defining a Radio
Slide 19
• (setf lmr1 (tell 'lmr-radio :new))
• BeginClass:LMR-RADIO
• SuperClass->(RADIO)
• ClassType=CLASS
• ClassName="Land Mobile Radio"
• isLocked=NIL
• isInstantiable=T
• isPersistent=T
• InstancesCount=1
• AttributeDefinitions:
• MAXFREQ:
• Description="Maximum operating
frequency"
• Cardinality=1
• DefaultValue=338.0
• InheritRel=AKO
• DataType=NIL
Instantiating a Radio
Slide 20
MINFREQ:
Description="Minimum operating
frequency"
Cardinality=1
DefaultValue=250.1
InheritRel=AKO
DataType=NIL
Attributes:
LAST-INSTANCE=LMR-RADIO-1
Relations:
PARTS->(ARM TI300 TRANSCEIVER)
EndClass:LMR-RADIO
• (tell lmr1 :print-hierarchy)
• PARTS hierarchy of:
• LMR-RADIO-1 - "LMR-RADIO-1"
• ..ARM-1 - "ARM-1"
• ..TI300-1 - "TI300-1"
• ..TRANSCEIVER-1 - "TRANSCEIVER-1"
• ....V5-LX80-2 - "V5-LX80-2"
• ....ARM-2 - "ARM-2"
• ....TI300-2 - "TI300-2"
• ....TRANSMITTER-1 - "TRANSMITTER-1"
• ....RECEIVER-1 - "RECEIVER-1"
Instantiating a Radio
Slide 21
• Objective is to extend the expressiveness of an
executable language to incorporate:
– Objects, Relations and Events as first-class objects in the
system.
– Context – expressed as the set of relationships asserted
for an object
• Logical, physical, spatial, temporal
– State – The value of the properties for an object.
• Incorporate historical values enabling the ability to query an
object about it’s state at a given point in time or in relation to an
event.
– Inference and Reasoning – Representing heuristics as a
set of conditions tied to assertions or action via
relationships.
– Hypotheses – The ability to define a set of assumptions or
assertions that allow exploration of alternatives concurrently
within the same knowledge space.
Summary
Slide 22

More Related Content

What's hot

Logic programming a ruby perspective
Logic programming a ruby perspectiveLogic programming a ruby perspective
Logic programming a ruby perspectiveNorman Richards
 
Scala eXchange opening
Scala eXchange openingScala eXchange opening
Scala eXchange openingMartin Odersky
 
Compilers Are Databases
Compilers Are DatabasesCompilers Are Databases
Compilers Are DatabasesMartin Odersky
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?Doug Hawkins
 
Using Combine, SwiftUI and callAsFunction to build an experimental localizati...
Using Combine, SwiftUI and callAsFunction to build an experimental localizati...Using Combine, SwiftUI and callAsFunction to build an experimental localizati...
Using Combine, SwiftUI and callAsFunction to build an experimental localizati...Donny Wals
 
The Evolution of Scala
The Evolution of ScalaThe Evolution of Scala
The Evolution of ScalaMartin Odersky
 
Making an Object System with Tcl 8.5
Making an Object System with Tcl 8.5Making an Object System with Tcl 8.5
Making an Object System with Tcl 8.5Donal Fellows
 
Functional Programming In Practice
Functional Programming In PracticeFunctional Programming In Practice
Functional Programming In PracticeMichiel Borkent
 
Intro to Python (High School) Unit #2
Intro to Python (High School) Unit #2Intro to Python (High School) Unit #2
Intro to Python (High School) Unit #2Jay Coskey
 
Oscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simpleOscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simpleMartin Odersky
 
Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009Martin Odersky
 
Optimizing Tcl Bytecode
Optimizing Tcl BytecodeOptimizing Tcl Bytecode
Optimizing Tcl BytecodeDonal Fellows
 
Statistical Machine Learning for Text Classification with scikit-learn and NLTK
Statistical Machine Learning for Text Classification with scikit-learn and NLTKStatistical Machine Learning for Text Classification with scikit-learn and NLTK
Statistical Machine Learning for Text Classification with scikit-learn and NLTKOlivier Grisel
 
Akka: Distributed by Design
Akka: Distributed by DesignAkka: Distributed by Design
Akka: Distributed by Designpatriknw
 

What's hot (20)

Scala Intro
Scala IntroScala Intro
Scala Intro
 
Logic programming a ruby perspective
Logic programming a ruby perspectiveLogic programming a ruby perspective
Logic programming a ruby perspective
 
Scala eXchange opening
Scala eXchange openingScala eXchange opening
Scala eXchange opening
 
Compilers Are Databases
Compilers Are DatabasesCompilers Are Databases
Compilers Are Databases
 
2 P Seminar
2 P Seminar2 P Seminar
2 P Seminar
 
Collections forceawakens
Collections forceawakensCollections forceawakens
Collections forceawakens
 
Quick introduction to scala
Quick introduction to scalaQuick introduction to scala
Quick introduction to scala
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
Using Combine, SwiftUI and callAsFunction to build an experimental localizati...
Using Combine, SwiftUI and callAsFunction to build an experimental localizati...Using Combine, SwiftUI and callAsFunction to build an experimental localizati...
Using Combine, SwiftUI and callAsFunction to build an experimental localizati...
 
The Evolution of Scala
The Evolution of ScalaThe Evolution of Scala
The Evolution of Scala
 
Making an Object System with Tcl 8.5
Making an Object System with Tcl 8.5Making an Object System with Tcl 8.5
Making an Object System with Tcl 8.5
 
Functional Programming In Practice
Functional Programming In PracticeFunctional Programming In Practice
Functional Programming In Practice
 
Intro to Python (High School) Unit #2
Intro to Python (High School) Unit #2Intro to Python (High School) Unit #2
Intro to Python (High School) Unit #2
 
Oscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simpleOscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simple
 
Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009
 
Ns2 by khan
Ns2 by khan Ns2 by khan
Ns2 by khan
 
Optimizing Tcl Bytecode
Optimizing Tcl BytecodeOptimizing Tcl Bytecode
Optimizing Tcl Bytecode
 
Apache Spark & Streaming
Apache Spark & StreamingApache Spark & Streaming
Apache Spark & Streaming
 
Statistical Machine Learning for Text Classification with scikit-learn and NLTK
Statistical Machine Learning for Text Classification with scikit-learn and NLTKStatistical Machine Learning for Text Classification with scikit-learn and NLTK
Statistical Machine Learning for Text Classification with scikit-learn and NLTK
 
Akka: Distributed by Design
Akka: Distributed by DesignAkka: Distributed by Design
Akka: Distributed by Design
 

Similar to PrismTech Reflective Language for Communication Systems

Introduction to embedded computing and arm processors
Introduction to embedded computing and arm processorsIntroduction to embedded computing and arm processors
Introduction to embedded computing and arm processorsRAMPRAKASHT1
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsSerge Stinckwich
 
IronSmalltalk
IronSmalltalkIronSmalltalk
IronSmalltalkESUG
 
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...MongoDB
 
SparkSQL: A Compiler from Queries to RDDs
SparkSQL: A Compiler from Queries to RDDsSparkSQL: A Compiler from Queries to RDDs
SparkSQL: A Compiler from Queries to RDDsDatabricks
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBrendan Gregg
 
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiNatural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiDatabricks
 
OSMC 2016 - ZMON Zalandos OS approach to monitoring in the cloud and DCs by J...
OSMC 2016 - ZMON Zalandos OS approach to monitoring in the cloud and DCs by J...OSMC 2016 - ZMON Zalandos OS approach to monitoring in the cloud and DCs by J...
OSMC 2016 - ZMON Zalandos OS approach to monitoring in the cloud and DCs by J...NETWAYS
 
OSMC 2016 | ZMON: Zalando's OS approach to monitoring in the cloud and DCs by...
OSMC 2016 | ZMON: Zalando's OS approach to monitoring in the cloud and DCs by...OSMC 2016 | ZMON: Zalando's OS approach to monitoring in the cloud and DCs by...
OSMC 2016 | ZMON: Zalando's OS approach to monitoring in the cloud and DCs by...NETWAYS
 
Introducing envoy-based service mesh at Booking.com
Introducing envoy-based service mesh at Booking.comIntroducing envoy-based service mesh at Booking.com
Introducing envoy-based service mesh at Booking.comIvan Kruglov
 
Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?Nelson Brito
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearchhypto
 
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)JiandSon
 
Cassandra Tutorial
Cassandra TutorialCassandra Tutorial
Cassandra Tutorialmubarakss
 
Building Deep Reinforcement Learning Applications on Apache Spark with Analyt...
Building Deep Reinforcement Learning Applications on Apache Spark with Analyt...Building Deep Reinforcement Learning Applications on Apache Spark with Analyt...
Building Deep Reinforcement Learning Applications on Apache Spark with Analyt...Databricks
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortStefan Marr
 
Programming Languages: some news for the last N years
Programming Languages: some news for the last N yearsProgramming Languages: some news for the last N years
Programming Languages: some news for the last N yearsRuslan Shevchenko
 
Profiling and optimization
Profiling and optimizationProfiling and optimization
Profiling and optimizationg3_nittala
 

Similar to PrismTech Reflective Language for Communication Systems (20)

Introduction to embedded computing and arm processors
Introduction to embedded computing and arm processorsIntroduction to embedded computing and arm processors
Introduction to embedded computing and arm processors
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
 
IronSmalltalk
IronSmalltalkIronSmalltalk
IronSmalltalk
 
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
 
SparkSQL: A Compiler from Queries to RDDs
SparkSQL: A Compiler from Queries to RDDsSparkSQL: A Compiler from Queries to RDDs
SparkSQL: A Compiler from Queries to RDDs
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
 
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiNatural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
 
OSMC 2016 - ZMON Zalandos OS approach to monitoring in the cloud and DCs by J...
OSMC 2016 - ZMON Zalandos OS approach to monitoring in the cloud and DCs by J...OSMC 2016 - ZMON Zalandos OS approach to monitoring in the cloud and DCs by J...
OSMC 2016 - ZMON Zalandos OS approach to monitoring in the cloud and DCs by J...
 
OSMC 2016 | ZMON: Zalando's OS approach to monitoring in the cloud and DCs by...
OSMC 2016 | ZMON: Zalando's OS approach to monitoring in the cloud and DCs by...OSMC 2016 | ZMON: Zalando's OS approach to monitoring in the cloud and DCs by...
OSMC 2016 | ZMON: Zalando's OS approach to monitoring in the cloud and DCs by...
 
Introducing envoy-based service mesh at Booking.com
Introducing envoy-based service mesh at Booking.comIntroducing envoy-based service mesh at Booking.com
Introducing envoy-based service mesh at Booking.com
 
Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?
 
Ns2
Ns2Ns2
Ns2
 
R and cpp
R and cppR and cpp
R and cpp
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
 
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
2013.02.02 지앤선 테크니컬 세미나 - Xcode를 활용한 디버깅 팁(OSXDEV)
 
Cassandra Tutorial
Cassandra TutorialCassandra Tutorial
Cassandra Tutorial
 
Building Deep Reinforcement Learning Applications on Apache Spark with Analyt...
Building Deep Reinforcement Learning Applications on Apache Spark with Analyt...Building Deep Reinforcement Learning Applications on Apache Spark with Analyt...
Building Deep Reinforcement Learning Applications on Apache Spark with Analyt...
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
 
Programming Languages: some news for the last N years
Programming Languages: some news for the last N yearsProgramming Languages: some news for the last N years
Programming Languages: some news for the last N years
 
Profiling and optimization
Profiling and optimizationProfiling and optimization
Profiling and optimization
 

More from ADLINK Technology IoT

Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...ADLINK Technology IoT
 
Harnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare SystemsHarnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare SystemsADLINK Technology IoT
 
Building and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudBuilding and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudADLINK Technology IoT
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeADLINK Technology IoT
 
Real-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex WebReal-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex WebADLINK Technology IoT
 
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...ADLINK Technology IoT
 
PrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems ModelingPrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems ModelingADLINK Technology IoT
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...ADLINK Technology IoT
 
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...ADLINK Technology IoT
 
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)ADLINK Technology IoT
 
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...ADLINK Technology IoT
 

More from ADLINK Technology IoT (20)

Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
 
Vortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud MessagingVortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud Messaging
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex Lite
 
Vortex Tutorial Part 2
Vortex Tutorial Part 2Vortex Tutorial Part 2
Vortex Tutorial Part 2
 
Harnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare SystemsHarnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare Systems
 
PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1
 
Building and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudBuilding and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex Cloud
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
 
Real-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex WebReal-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex Web
 
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
 
PrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems ModelingPrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems Modeling
 
Model_Driven_Development_SDR
Model_Driven_Development_SDRModel_Driven_Development_SDR
Model_Driven_Development_SDR
 
SCA_4_adoption_may2013
SCA_4_adoption_may2013SCA_4_adoption_may2013
SCA_4_adoption_may2013
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...
 
Sca 4 0 _may16_2012_final
Sca 4 0 _may16_2012_finalSca 4 0 _may16_2012_final
Sca 4 0 _may16_2012_final
 
Spectra dtp4700h march2012_final
Spectra dtp4700h march2012_finalSpectra dtp4700h march2012_final
Spectra dtp4700h march2012_final
 
Spectra CX 3.4 Launch Webcast
Spectra CX 3.4 Launch WebcastSpectra CX 3.4 Launch Webcast
Spectra CX 3.4 Launch Webcast
 
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
 
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
 
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
 

Recently uploaded

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 

Recently uploaded (20)

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 

PrismTech Reflective Language for Communication Systems

  • 1. Reflective Language for Communications Systems WInnComm 2014 Vince Kovarik, PhD Chief Technology Officer vince.kovarik@prismtech.com
  • 2. • The following presentation presents personal work performed by Vince Kovarik. • It does not reflect any opinion, views, products or capabilities of PrismTech. Disclaimer Slide 2
  • 3. • Prior experience with knowledge representation and reasoning techniques, e.g. Frames, Conceptual Dependency, NETL, Cyc, OWL, etc. – Expressive representation or reasoning capability but often limited in domain or scope. • Experience with object-oriented languages, e.g. LISP/Flavors, LOOPS, CLOS, Smalltalk, Simula, C++, Java, etc. – Provides the association of state (variables) and behavior (methods) within the concept of an object but limited to current value and pure algorithmic behavior. • Brittleness in existing programming languages, including OO languages. – Weak or no built-in representation of context Origins Slide 3
  • 4. • Object-Oriented language paradigm but extended to represent relationships and events/actions as concrete entities. • Incorporate a base set of objects, relations and events and common semantic interpretations within the base system. • Prototype language as an extension of existing OO Language. • Evolutionary optimization of low-level structural representation to improve performance. • Provide capability to link to libraries for special purpose code, device drivers, etc. Basic Tenets/Objectives Slide 4
  • 5. Language Superstructure Slide 5 class Object Hierarchy «abstract» Root «abstract» Object «abstract» Event «abstract» MetaClass «abstract» Relation Instance AttributeDef Attribute «struct» BaseStructures:: MInstance «struct» BaseStructures::MEvent«struct» BaseStructures:: MAttribute «struct» BaseStructures::MObject «struct» BaseStructures::MRelation Language Superstructure Base Structures «instantiate» 0..*0..* InstanceOf 1 InstanceOf InstanceOfInstanceOf InstanceOf InstanceOf 0..* «instantiate»«instantiate»«instantiate» «instantiate» «instantiate» «instantiate»
  • 6. Base Structures Slide 6 class Base Structures «struct» MObject - attrDefs :list - attributes :list - constraints :list - createBy :object - daemons :list - description :string - hierarchy :list - instanceNo :int - instances :list - instantiable :boolean = nil - locked :boolean - messages :list - name :string - persistent :boolean = t - relations :list - subclasses :list - superclasses :list - sysattributes :list - sysrelations :list - universalID :UUID «struct» MAttribute - cardinality :int = 1 - computed :list - constraint :list - default :any - description :string - inherit :symbol = ako - mandatory :boolean - name :stirng - stringName :string - systemp :boolean = nil - type :typeDef - unversalID :octet - UUID :octet - visibility :symbol = PUBLIC «struct» MRelation - autoAssert :boolean = nil - createDelete :boolean - domainCardinality :int = 1 - domainType :MObject = Root - hornClause :list - index :int - inverse :object - rangeCardinality :int = 1 - rangeType :MObject = Root - rule :list «struct» MInstance - attributes :Set - constraints :int - createdBy :int - mClass :MObject - name :String - relations :Set - universalID :int «struct» MEvent - actions :OrderedSet - agents :MObject - objects :MObject - postConditions :Set - preConditions :Set «struct» MTime - endInterval :int - startInterval :int
  • 7. • (def-class resource object • :name "Resource" • :instantiable nil • :description "A physical or logical element that is required or used by another element to provide some capability or function." • :attributes ( • (id • :cardinality 1 • :description "A unique identifier" • ))) • (def-method (resource :start) () • ; This would link to a .so or .dll library implementing the HW/Resource interface and logic • (format t "Processing started for ~a~%" self)) Base Object Hierarchy Slide 7 class Objects Root «abstract» MetaObjects::Object + :save-to-file() :void component hardware-component resource discrete-resource device loadable-device executable-device software-interface fparam composite-device software-component
  • 8. Base Relation Hierarchy Slide 8 class Relations Root «abstract» MetaObjects:: Relation logicalrelation loadedimages is-conneted-to SWComponents hasMain physicalrelation dependencyrelation • (defrelation SWComponents logicalrelation • :name "->hasSWComponents->" • :description "Sub-components of this component" • :inverse SwComponentOf • :inverseName "->isSWComponentOf->" • :inverseDesc "Component which this component is a part of" • :domainType software-component • :rangeType software-component)
  • 9. • So, what does any of this have to do with communications systems? Slide 9
  • 10. • Radio hardware components are defined as subclasses of a device. • The composite- device provides a simple but effective characterization of a hierarchical collection of components. Radio Domain Objects Slide 10 class SDR_Domain hardware-component resource Objects::dev ice receiv er transmitter Objects:: composite-dev ice transceiv er DAC DAC Objects:: loadable-device Objects:: executable-device DSP FPGA GPP Core-2-duo ARM V5-LX80 TI300 radio
  • 11. • (setf swc-1 • (tell 'software-component :new • :props '( • (name "Math Library") • (size 800000) • (language "C") • ))) • (setf swc-2 • (tell 'software-component :new • :props '( • (name "Tracking Main") • (size 2000) • (language "C") • ))) Define Software Components Slide 11 (setf swc-3 (tell 'software-component :new :props '( (name "IO Library") (size 3400) (language "ASM") ))) (setf swc-4 (tell 'software-component :new :props '( (name "Rate 1/2 Viterbi Decoder") (size 3000) (language "VHDL") )))
  • 12. • (tell loaddev-1 :load swc-4) • (tell loaddev-1 :describe) • BeginInstance=SOFTWARE-COMPONENT-4 • InstanceOf->SOFTWARE-COMPONENT • Name="SOFTWARE-COMPONENT-4" • Attributes: • NAME="Rate 1/2 Viterbi Decoder" • SIZE=3000 • LANGUAGE="VHDL" • Relations: • LOADEDON->(V5-LX80-1) • EndInstance=SOFTWARE-COMPONENT-4 Software Component Definition Slide 12
  • 13. • (tell swc-2 :assert 'swcomponents swc-1) • (tell swc-2 :assert 'swcomponents swc-3) • • (setf testapp • (tell 'application :new • :props '( • (name "Tracking Application") • ))) • (tell testapp :assert 'hasMain swc-2) Define Software Components Slide 13
  • 14. • (tell testapp :describe) • BeginInstance=APPLICATION-1 • InstanceOf->APPLICATION • Name="APPLICATION-1" • Attributes: • NAME="Tracking Application" • Relations: • HASMAIN->(SOFTWARE-COMPONENT- 2) • EndInstance=APPLICATION-1 Define Software Components Slide 14
  • 15. • (tell swc-2 :describe) • BeginInstance=SOFTWARE-COMPONENT-2 • InstanceOf->SOFTWARE-COMPONENT • Name="SOFTWARE-COMPONENT-2" • Attributes: • NAME="Tracking Main" • SIZE=2000 • LANGUAGE="C" • Relations: • SWCOMPONENTS->(SOFTWARE-COMPONENT-1 SOFTWARE- COMPONENT-3) • ISMAINOF->(APPLICATION-1) • EndInstance=SOFTWARE-COMPONENT-2 Software Application Main Slide 15
  • 16. • (def-class V5-LX80 FPGA • :name "Virtex 5 LX80" • :description "A model of FPGA" • :instantiable t • :attributes ( • (numgates • :default 60000) • (maxClockRate • :default 240) • (maxImage • :default 10000) • (availImage • :default 10000) • )) Hardware Component Definition (setf loaddev-1 (tell 'V5-LX80 :new)) (tell loaddev-1 :describe) BeginInstance=V5-LX80-1 InstanceOf->V5-LX80 Name="V5-LX80-1" Attributes: Relations: EndInstance=V5-LX80-1 (tell loaddev-1 :get 'maximage) 10000 Slide 16
  • 17. • (def-class lmr-radio radio • :name "Land Mobile Radio" • :description "A trunked, handheld radio used by public safety and first responders." • :instantiable t • :attributes ( • (minFreq • :description "Minimum operating frequency" • :cardinality 1 • :default 250.1 • :units MHz) • (maxFreq • :description "Maximum operating frequency" • :cardinality 1 • :default 338.0 • :units MHz))) • (tell 'lmr-radio :assert 'parts '(arm TI300 transceiver)) • (tell 'receiver :assert 'parts 'ad-24) • (tell 'transmitter :assert 'parts 'class-c-PA) “Defining” a Radio Slide 17
  • 18. • BeginClass:LMR-RADIO • SuperClass->(RADIO) • ClassType=CLASS • ClassName="Land Mobile Radio" • isLocked=NIL • isInstantiable=T • isPersistent=T • InstancesCount=0 • AttributeDefinitions: • MAXFREQ: • Description="Maximum operating frequency" • Cardinality=1 • DefaultValue=338.0 • InheritRel=AKO • DataType=NIL “Defining” a Radio Slide 18 MINFREQ: Description="Minimum operating frequency" Cardinality=1 DefaultValue=250.1 InheritRel=AKO DataType=NIL Attributes: Relations: PARTS->(ARM TI300 TRANSCEIVER) EndClass:LMR-RADIO
  • 19. • (tell 'lmr-radio :print-hierarchy) • PARTS hierarchy of: • LMR-RADIO - "Land Mobile Radio" • ..ARM - "ARM Processor" • ..TI300 - "Texas Instruments 300 DSP" • ..TRANSCEIVER - "Transceiver" • ....V5-LX80 - "Virtex 5 LX80" • ....ARM - "ARM Processor" • ....TI300 - "Texas Instruments 300 DSP" • ....TRANSMITTER - "Transmitter" • ......CLASS-C-PA - "Class C Power Amplifier" • ....RECEIVER - "Receiver" • ......AD-24 - "24 bit ADC" Defining a Radio Slide 19
  • 20. • (setf lmr1 (tell 'lmr-radio :new)) • BeginClass:LMR-RADIO • SuperClass->(RADIO) • ClassType=CLASS • ClassName="Land Mobile Radio" • isLocked=NIL • isInstantiable=T • isPersistent=T • InstancesCount=1 • AttributeDefinitions: • MAXFREQ: • Description="Maximum operating frequency" • Cardinality=1 • DefaultValue=338.0 • InheritRel=AKO • DataType=NIL Instantiating a Radio Slide 20 MINFREQ: Description="Minimum operating frequency" Cardinality=1 DefaultValue=250.1 InheritRel=AKO DataType=NIL Attributes: LAST-INSTANCE=LMR-RADIO-1 Relations: PARTS->(ARM TI300 TRANSCEIVER) EndClass:LMR-RADIO
  • 21. • (tell lmr1 :print-hierarchy) • PARTS hierarchy of: • LMR-RADIO-1 - "LMR-RADIO-1" • ..ARM-1 - "ARM-1" • ..TI300-1 - "TI300-1" • ..TRANSCEIVER-1 - "TRANSCEIVER-1" • ....V5-LX80-2 - "V5-LX80-2" • ....ARM-2 - "ARM-2" • ....TI300-2 - "TI300-2" • ....TRANSMITTER-1 - "TRANSMITTER-1" • ....RECEIVER-1 - "RECEIVER-1" Instantiating a Radio Slide 21
  • 22. • Objective is to extend the expressiveness of an executable language to incorporate: – Objects, Relations and Events as first-class objects in the system. – Context – expressed as the set of relationships asserted for an object • Logical, physical, spatial, temporal – State – The value of the properties for an object. • Incorporate historical values enabling the ability to query an object about it’s state at a given point in time or in relation to an event. – Inference and Reasoning – Representing heuristics as a set of conditions tied to assertions or action via relationships. – Hypotheses – The ability to define a set of assumptions or assertions that allow exploration of alternatives concurrently within the same knowledge space. Summary Slide 22

Editor's Notes

  1. Instructions to add own background image:Insert picture from file.Position image over polygon hole.Right click image. Arrange > Send to Back.