SlideShare a Scribd company logo
1 of 12
Download to read offline
REALTALK
A Programming Language for
Wireless Embedded Sensor
Network
Alexandre Bergel
Siobhán Clarke
Distributed Systems Group
Trinity College Dublin
Alexandre Bergel
Programming wireless sensor devices is difficult
• Embedded sensor systems are difficult to program.
• Power consumption, memory management, hardware
abstraction:
– component maintenance: the C programming language prevents
software component from being easily maintained.
– sensor asynchronism: sampling is achieved by emitting and
receiving events.
2
Alexandre Bergel
Sensor sampling creates disruption in the app
3
CPU Sensor
Request for a
sampling
answer
measurement
Optimizing
resource
is critical!
Alexandre Bergel
Sensor sampling creates disruption in the app
4
CPU Sensor
Request for a
sampling
answer
measurement
Data
passing
is critical!
Alexandre Bergel
Realtalk: An Object-based language
Goal: making embedded programming easier and providing
advanced hardware abstraction.
Creation of a counter application:
RTObject subclass: #Counter
variableNames: ‘leds timer value’.
Counter compile: ‘start
value := 0.
timer invoke: #triggeredMethod every: 500.’
Counter compile: ‘triggeredMethod
value := value + 1.
leds display: value.’
5
Alexandre Bergel
Object composition and hybrid type system
Linking the counter to the leds and a timer:
RTObject subclass: #Counter
variableNames: ‘leds timer value’.
Counter composeWith:
{ #leds -> Leds. #timer -> Timer }
Realtalk supports an hybrid type system.
6
Alexandre Bergel
Class specialization
Let’s emit a sound at each increment:
Counter subclass: #SoundCounter
variableNames: ‘sounder’
aliases: { #triggeredMethod -> #incAndDisplay}.
SoundCounter compile: ‘triggeredMethod
self incAndDisplay.
leds isRedOn
ifTrue: [sounder start]
ifFalse: [sounder stop].’
7
Alexandre Bergel
Example of Controlled Disruption
Reading two sensors and emitting their sampling:
AnyObject compile: ‘readingTwoSensors
| value1 value2 |
leds display: 1.
value1 := lightSensor read.
leds display: 2.
value2 := soundSensor read.
leds display: 3.
radio emit: (value1 + value2).’
8
Alexandre Bergel
Method is cut down into pieces...
9
Reading two sensors and emitting their sampling:
AnyObject compile: ‘readingTwoSensors
| value1 value2 |
leds display: 1.
value1 := lightSensor read.
leds display: 2.
value2 := soundSensor read.
leds display: 3.
radio emit: (value1 + value2).’
Alexandre Bergel
... and those pieces are inserted in a pool
10
...
Alexandre Bergel
Implementation based on TinyOS/NesC
11
Mote/Mica/...
4k RAM devices
TinyOS
NesC Realtalk
Alexandre Bergel
Conclusion
• Realtalk is a scripting language dedicated to small sensor
device with high limited resources.
• It provides advanced features regarding:
– component interactions
– component specialization
– sensor programming
• On going work focuses on large software construction.
12

More Related Content

Viewers also liked

Linguistic Symbiosis between Actors and Threads
Linguistic Symbiosis between Actors and ThreadsLinguistic Symbiosis between Actors and Threads
Linguistic Symbiosis between Actors and ThreadsESUG
 
Painting objects with Mondrian
Painting objects with MondrianPainting objects with Mondrian
Painting objects with MondrianESUG
 
Feature Driven Browsing
Feature Driven BrowsingFeature Driven Browsing
Feature Driven BrowsingESUG
 
Sophie
SophieSophie
SophieESUG
 
Advanced O/R Mapping with Glorp
Advanced O/R Mapping with GlorpAdvanced O/R Mapping with Glorp
Advanced O/R Mapping with GlorpESUG
 
The Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the EcosystemThe Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the EcosystemESUG
 

Viewers also liked (6)

Linguistic Symbiosis between Actors and Threads
Linguistic Symbiosis between Actors and ThreadsLinguistic Symbiosis between Actors and Threads
Linguistic Symbiosis between Actors and Threads
 
Painting objects with Mondrian
Painting objects with MondrianPainting objects with Mondrian
Painting objects with Mondrian
 
Feature Driven Browsing
Feature Driven BrowsingFeature Driven Browsing
Feature Driven Browsing
 
Sophie
SophieSophie
Sophie
 
Advanced O/R Mapping with Glorp
Advanced O/R Mapping with GlorpAdvanced O/R Mapping with Glorp
Advanced O/R Mapping with Glorp
 
The Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the EcosystemThe Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the Ecosystem
 

Similar to Programming Wireless Sensors Made Easy with Realtalk Language

FIRE ALARM SYSTEM PPT.pptx
FIRE ALARM SYSTEM PPT.pptxFIRE ALARM SYSTEM PPT.pptx
FIRE ALARM SYSTEM PPT.pptxRaJYadav196733
 
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and ArduinoNSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and ArduinoBrian Huang
 
Introduction to Arduino with ArduBlock & SparkFun LilyPad
Introduction to Arduino with ArduBlock & SparkFun LilyPadIntroduction to Arduino with ArduBlock & SparkFun LilyPad
Introduction to Arduino with ArduBlock & SparkFun LilyPadBrian Huang
 
Physical prototyping lab2-analog_digital
Physical prototyping lab2-analog_digitalPhysical prototyping lab2-analog_digital
Physical prototyping lab2-analog_digitalTony Olsson.
 
Physical prototyping lab2-analog_digital
Physical prototyping lab2-analog_digitalPhysical prototyping lab2-analog_digital
Physical prototyping lab2-analog_digitalTony Olsson.
 
AN IOT BASED AIR POLLUTION MONITORING SYSTEM pptx (1).pptx
AN IOT BASED AIR POLLUTION MONITORING SYSTEM pptx (1).pptxAN IOT BASED AIR POLLUTION MONITORING SYSTEM pptx (1).pptx
AN IOT BASED AIR POLLUTION MONITORING SYSTEM pptx (1).pptx20Q95A0402AVULAKALYA
 
ISI_Report_(Repaired) (4) (1)
ISI_Report_(Repaired) (4) (1)ISI_Report_(Repaired) (4) (1)
ISI_Report_(Repaired) (4) (1)Indranil Roy
 
A Smart Handheld Measuring and Testing Electronic Device with Touch Screen
A Smart Handheld Measuring and Testing Electronic Device with Touch ScreenA Smart Handheld Measuring and Testing Electronic Device with Touch Screen
A Smart Handheld Measuring and Testing Electronic Device with Touch ScreenIJTET Journal
 
Advanced view of atmega microcontroller projects list at mega32 avr
Advanced view of atmega microcontroller projects list   at mega32 avrAdvanced view of atmega microcontroller projects list   at mega32 avr
Advanced view of atmega microcontroller projects list at mega32 avrWiseNaeem
 
Lab Assignment 6 Ping Pong using TasksAli Alshamali, Stephen .docx
Lab Assignment 6 Ping Pong using TasksAli Alshamali, Stephen .docxLab Assignment 6 Ping Pong using TasksAli Alshamali, Stephen .docx
Lab Assignment 6 Ping Pong using TasksAli Alshamali, Stephen .docxsmile790243
 
Starting with Arduino
Starting with Arduino Starting with Arduino
Starting with Arduino MajdyShamasneh
 

Similar to Programming Wireless Sensors Made Easy with Realtalk Language (20)

EESS.pptx
EESS.pptxEESS.pptx
EESS.pptx
 
FIRE ALARM SYSTEM PPT.pptx
FIRE ALARM SYSTEM PPT.pptxFIRE ALARM SYSTEM PPT.pptx
FIRE ALARM SYSTEM PPT.pptx
 
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and ArduinoNSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
 
Introduction to Arduino with ArduBlock & SparkFun LilyPad
Introduction to Arduino with ArduBlock & SparkFun LilyPadIntroduction to Arduino with ArduBlock & SparkFun LilyPad
Introduction to Arduino with ArduBlock & SparkFun LilyPad
 
Arduino
ArduinoArduino
Arduino
 
MPU-6050_RF24L01
MPU-6050_RF24L01MPU-6050_RF24L01
MPU-6050_RF24L01
 
Physical prototyping lab2-analog_digital
Physical prototyping lab2-analog_digitalPhysical prototyping lab2-analog_digital
Physical prototyping lab2-analog_digital
 
Physical prototyping lab2-analog_digital
Physical prototyping lab2-analog_digitalPhysical prototyping lab2-analog_digital
Physical prototyping lab2-analog_digital
 
AN IOT BASED AIR POLLUTION MONITORING SYSTEM pptx (1).pptx
AN IOT BASED AIR POLLUTION MONITORING SYSTEM pptx (1).pptxAN IOT BASED AIR POLLUTION MONITORING SYSTEM pptx (1).pptx
AN IOT BASED AIR POLLUTION MONITORING SYSTEM pptx (1).pptx
 
Bidirect visitor counter
Bidirect visitor counterBidirect visitor counter
Bidirect visitor counter
 
ISI_Report_(Repaired) (4) (1)
ISI_Report_(Repaired) (4) (1)ISI_Report_(Repaired) (4) (1)
ISI_Report_(Repaired) (4) (1)
 
A Smart Handheld Measuring and Testing Electronic Device with Touch Screen
A Smart Handheld Measuring and Testing Electronic Device with Touch ScreenA Smart Handheld Measuring and Testing Electronic Device with Touch Screen
A Smart Handheld Measuring and Testing Electronic Device with Touch Screen
 
Arduino Thermometer
Arduino ThermometerArduino Thermometer
Arduino Thermometer
 
Advanced view of atmega microcontroller projects list at mega32 avr
Advanced view of atmega microcontroller projects list   at mega32 avrAdvanced view of atmega microcontroller projects list   at mega32 avr
Advanced view of atmega microcontroller projects list at mega32 avr
 
embedded system for green g
embedded system for green gembedded system for green g
embedded system for green g
 
Lab Assignment 6 Ping Pong using TasksAli Alshamali, Stephen .docx
Lab Assignment 6 Ping Pong using TasksAli Alshamali, Stephen .docxLab Assignment 6 Ping Pong using TasksAli Alshamali, Stephen .docx
Lab Assignment 6 Ping Pong using TasksAli Alshamali, Stephen .docx
 
Starting with Arduino
Starting with Arduino Starting with Arduino
Starting with Arduino
 
B1_25Jan21.pptx
B1_25Jan21.pptxB1_25Jan21.pptx
B1_25Jan21.pptx
 
Light sensor
Light sensorLight sensor
Light sensor
 
What is arduino
What is arduinoWhat is arduino
What is arduino
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Programming Wireless Sensors Made Easy with Realtalk Language

  • 1. REALTALK A Programming Language for Wireless Embedded Sensor Network Alexandre Bergel Siobhán Clarke Distributed Systems Group Trinity College Dublin
  • 2. Alexandre Bergel Programming wireless sensor devices is difficult • Embedded sensor systems are difficult to program. • Power consumption, memory management, hardware abstraction: – component maintenance: the C programming language prevents software component from being easily maintained. – sensor asynchronism: sampling is achieved by emitting and receiving events. 2
  • 3. Alexandre Bergel Sensor sampling creates disruption in the app 3 CPU Sensor Request for a sampling answer measurement Optimizing resource is critical!
  • 4. Alexandre Bergel Sensor sampling creates disruption in the app 4 CPU Sensor Request for a sampling answer measurement Data passing is critical!
  • 5. Alexandre Bergel Realtalk: An Object-based language Goal: making embedded programming easier and providing advanced hardware abstraction. Creation of a counter application: RTObject subclass: #Counter variableNames: ‘leds timer value’. Counter compile: ‘start value := 0. timer invoke: #triggeredMethod every: 500.’ Counter compile: ‘triggeredMethod value := value + 1. leds display: value.’ 5
  • 6. Alexandre Bergel Object composition and hybrid type system Linking the counter to the leds and a timer: RTObject subclass: #Counter variableNames: ‘leds timer value’. Counter composeWith: { #leds -> Leds. #timer -> Timer } Realtalk supports an hybrid type system. 6
  • 7. Alexandre Bergel Class specialization Let’s emit a sound at each increment: Counter subclass: #SoundCounter variableNames: ‘sounder’ aliases: { #triggeredMethod -> #incAndDisplay}. SoundCounter compile: ‘triggeredMethod self incAndDisplay. leds isRedOn ifTrue: [sounder start] ifFalse: [sounder stop].’ 7
  • 8. Alexandre Bergel Example of Controlled Disruption Reading two sensors and emitting their sampling: AnyObject compile: ‘readingTwoSensors | value1 value2 | leds display: 1. value1 := lightSensor read. leds display: 2. value2 := soundSensor read. leds display: 3. radio emit: (value1 + value2).’ 8
  • 9. Alexandre Bergel Method is cut down into pieces... 9 Reading two sensors and emitting their sampling: AnyObject compile: ‘readingTwoSensors | value1 value2 | leds display: 1. value1 := lightSensor read. leds display: 2. value2 := soundSensor read. leds display: 3. radio emit: (value1 + value2).’
  • 10. Alexandre Bergel ... and those pieces are inserted in a pool 10 ...
  • 11. Alexandre Bergel Implementation based on TinyOS/NesC 11 Mote/Mica/... 4k RAM devices TinyOS NesC Realtalk
  • 12. Alexandre Bergel Conclusion • Realtalk is a scripting language dedicated to small sensor device with high limited resources. • It provides advanced features regarding: – component interactions – component specialization – sensor programming • On going work focuses on large software construction. 12