Reactive Web Programming

Size: px
Start display at page:

Download "Reactive Web Programming"

Transcription

1 Reactive Web Programming Colin Vidal INRIA Sophia Antipolis Supervisors : Manuel Serrano Gérard Berry December 2, / 14

2 JavaScript language A mainstream language to write web application : very easy to write dynamic (modular) program, which parts on remote servers ; embedded in common web browsers ; also use in server side (NodeJS) ; no threads with shared memory capabilities ; asynchronous ; efficient, thanks to JIT ; 2 / 14

3 Hop.js Language for building web, multitiers web applications. A JavaScript run-time with few goodies : defines easily route (URL), or access to distant services, with language primitives ; server and client code in the same program ; fully compatible with NodeJS libraries ; parse and evaluate XML trees like an imbrication of functions. function BAR() { console.log( bar called ); } function FOO(attrs) { console.log( foo called, attrs.val) } <bar><foo val=5 /></bar> will print foo called 5 bar called 3 / 14

4 Way to program web applications The web is conceptually asynchronous no control on layers which it depends (we won t block) ; interactions between different peers is asynchronous (eg. requests of users, answer to them, UI events... ) ; no way to keep track of state without using global variables and big automates. It s difficult to have a global view of sequential execution of the program, because of the continuations : difficult to avoid bug and maintains. needs to orchestration technique. 4 / 14

5 Esterel language Originally, Esterel is : static code, no run-time dynamic loading very efficient for schedule, control and orchestrate asynchronous code in a synchronous way used to be embedded on host language ; Adapted for embedded systems, static languages... but actually not adapted to web programming. 5 / 14

6 Esterel + JavaScript How to get power of control of Esterel, keeping the flexibility, and asynchronous style of JavaScript? 6 / 14

7 HipHop.js A Hop.js library which is : a reactive extension of the language ; a partial clone of Esterel ; specific of JavaScript programming. A reactive HipHop.js program is describe with an XML tree (avoid parsing), eventually, it will be a DSL. 7 / 14

8 1 " use hopscript " 2 var rjs = require (" reactive -js"); 3 var prg = < rjs. reactivemachine name =" ABRO " > 4 <rjs. inputsignal name ="R" /> 5 <rjs. inputsignal name ="A" /> 6 <rjs. inputsignal name ="B" /> 7 <rjs. outputsignal name ="O"/> 8 <rjs. loop > 9 <rjs. abort signal_name ="R"> 10 <rjs. sequence > 11 <rjs. parallel > 12 <rjs. await signal_name ="A" /> 13 <rjs. await signal_name ="B" /> 14 </ rjs. parallel > 15 <rjs. emit signal_name ="O" /> 16 <rjs. halt /> 17 </ rjs. sequence > 18 </ rjs. abort > 19 </ rjs. loop > 20 </ rjs. reactivemachine >; 8 / 14

9 1 function foo ( evt ) { 2 console. log ( evt. signal, "is set "); 3 } 4 5 prg. seteventlistener ("O", foo ); 6 7 prg. setinput ("A"); 8 prg. setinput ("B"); 9 prg. react (); // will print "O is set " 9 / 14

10 Compilation of HipHop.js program Goal : simulation of circuits, with high level objects that represent components and wires (not concerned by optimization yet). var foo = <ReactiveMachine name="foo">... </ReactiveMachine>; 1. The XML tree is evaluated in Hop.js, as a regular imbrication of functions ; 2. this evaluation build an AST tree of the program ; 3. visitors cross on it, building the run-time objects ; 4. returns a reactive machine into foo. 10 / 14

11 What we have now, with HipHop.js? same semantics that Esterel (core language, immediate reaction to the absence) ; expression and types are directly in JavaScript ; tiny API to set event handler on signal emission, set inputs, start reaction ; save the machine state, and restore it for a further execution. 11 / 14

12 Merge signal and variables Esterel variables can t be shared between concurrent threads, since a thread write on it : avoid non-determinism ; difficult to use it ; odd for peoples from imperative programming. The SCL language allow it, since there is an deterministic order between initialization, writing and reading the variables. 12 / 14

13 Conclusion Orchestrate web applications with a re-implementation of Esterel, keeping lot of the language : web programmers just have to write a reactive machine and plug already existing inputs events and callbacks on it ; all of core statement of Esterel, no compromise Lots of things to be done, for instance : Make easy to use debugging tools ; more concise way to write reactive program than XML ; make applications, find users! 13 / 14

14 Thanks for your attention! 14 / 14

HIPHOP: A Synchronous Reactive Extension for HOP

HIPHOP: A Synchronous Reactive Extension for HOP HIPHOP: A Synchronous Reactive Extension for HOP Gérard Berry Inria Sophia Méditerranée 2004 route des Lucioles - BP 93 F-06902 Sophia Antipolis, Cedex France Gerard.Berry@inria.fr Cyprien Nicolas Inria

More information

Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, s

Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, s Pascal Raymond, Verimag-CNRS Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, sequential style (i.e.

More information

The Esterel language

The Esterel language Pascal Raymond, Verimag-CNRS Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, sequential style (i.e.

More information

HIPHOP: A Synchronous Reactive Extension for HOP

HIPHOP: A Synchronous Reactive Extension for HOP HIPHOP: A Synchronous Reactive Extension for HOP Gérard Berry Inria Sophia Méditerranée 2004 route des Lucioles - BP 93 F-06902 Sophia Antipolis, Cedex France Gerard.Berry@inria.fr Cyprien Nicolas Inria

More information

Hop and HipHop: Multitier Web Orchestration

Hop and HipHop: Multitier Web Orchestration Hop and HipHop: Multitier Web Orchestration Gérard Berry*, Manuel Serrano** *Collège de France Chair Algorithms, Machines and Langages **Inria Sophia-Antipolis Indian Imagination : pbase.com/gberry ICDCIT,

More information

Hop and HipHop : Multitier Web Orchestration

Hop and HipHop : Multitier Web Orchestration Hop and HipHop : Multitier Web Orchestration Gérard Berry, Manuel Serrano To cite this version: Gérard Berry, Manuel Serrano. Hop and HipHop : Multitier Web Orchestration. International Conference on Distributed

More information

Synchronous Statecharts. Christian Motika

Synchronous Statecharts. Christian Motika Execution (KlePto) Esterel to transformation (KIES) Synchronous Statecharts for executing Esterel with Ptolemy Christian Motika Real-Time Systems and Embedded Systems Group Department of Computer Science

More information

JS Event Loop, Promises, Async Await etc. Slava Kim

JS Event Loop, Promises, Async Await etc. Slava Kim JS Event Loop, Promises, Async Await etc Slava Kim Synchronous Happens consecutively, one after another Asynchronous Happens later at some point in time Parallelism vs Concurrency What are those????

More information

ECL: A SPECIFICATION ENVIRONMENT FOR SYSTEM-LEVEL DESIGN

ECL: A SPECIFICATION ENVIRONMENT FOR SYSTEM-LEVEL DESIGN / ECL: A SPECIFICATION ENVIRONMENT FOR SYSTEM-LEVEL DESIGN Gerard Berry Ed Harcourt Luciano Lavagno Ellen Sentovich Abstract We propose a new specification environment for system-level design called ECL.

More information

NODE.JS MOCK TEST NODE.JS MOCK TEST I

NODE.JS MOCK TEST NODE.JS MOCK TEST I http://www.tutorialspoint.com NODE.JS MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Node.js Framework. You can download these sample mock tests at

More information

Compiling Esterel. Dumitru Potop-Butucaru. Stephen A. Edwards Gérard Berry

Compiling Esterel. Dumitru Potop-Butucaru. Stephen A. Edwards Gérard Berry Compiling Esterel Compiling Esterel Dumitru Potop-Butucaru Stephen A. Edwards Gérard Berry A C.I.P. Catalogue record for this book is available from the Library of Congress. ISBN 978-0-387-70626-9 (HB)

More information

Real-Time Programming Languages (ADA and Esterel as Examples)

Real-Time Programming Languages (ADA and Esterel as Examples) Real-Time Programming Languages (ADA and Esterel as Examples) Real-Time Systems, 2008 RT Languages, 1 RT Language Classes HLL suitable for RT-Analysis (e.g., rms or time-driven) Synchronous HLL (clock

More information

Interactive Esterel to SyncCharts Transformation. Christian Motika

Interactive Esterel to SyncCharts Transformation. Christian Motika Interactive Esterel to SyncCharts Transformation for executing Esterel with Ptolemy Christian Motika Real-Time Systems and Embedded Systems Group Department of Computer Science Christian-Albrechts-Universität

More information

XEVE, an ESTEREL Verification Environment

XEVE, an ESTEREL Verification Environment XEVE, an ESTEREL Verification Environment Amar Bouali INRIA, B.P. 93, F-06902 Sophia-Antipolis cedex amar@sophia, inria, fr Abstract. We describe the verification methods and tools we are currently developing

More information

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Poor co-ordination that exists in threads on JVM is bottleneck

More information

ESUIF: An Open Esterel Compiler

ESUIF: An Open Esterel Compiler ESUIF: An Open Esterel Compiler Stephen A. Edwards Department of Computer Science Columbia University www.cs.columbia.edu/ sedwards Not Another One... My research agenda is to push Esterel compilation

More information

Chapter 4: Threads. Operating System Concepts. Silberschatz, Galvin and Gagne

Chapter 4: Threads. Operating System Concepts. Silberschatz, Galvin and Gagne Chapter 4: Threads Silberschatz, Galvin and Gagne Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Linux Threads 4.2 Silberschatz, Galvin and

More information

Synchronous Dataflow Processong

Synchronous Dataflow Processong Synchronous Dataflow Processong Claus Traulsen and Reinhard von Hanxleden Christian-Albrechts Universität zu Kiel Echtzeitsysteme / Eingebettete Systeme March 00 CAU Claus Traulsen / 8 Outline Motivation

More information

Human-Computer Interaction Design

Human-Computer Interaction Design Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo Lab 6 - Connecting frontend and backend without page reloads (2016-11-03) by Michael Bernstein, Scott Klemmer, and Philip

More information

Safe Reactive Programming: the FunLoft Proposal

Safe Reactive Programming: the FunLoft Proposal Safe Reactive Programming: the FunLoft Proposal Frédéric Boussinot MIMOSA Project, Inria Sophia-Antipolis (Joint work with Frédéric Dabrowski) http://www.inria.fr/mimosa/rp With support from ALIDECS SYNCHRON

More information

CSP IN JAVASCRIPT.

CSP IN JAVASCRIPT. CSP IN JAVASCRIPT Page 1 of 31 VINCENZO CHIANESE BUGS INTRODUCER AT APIARY https://github.com/xvincentx @D3DVincent https://vncz.js.org Page 2 of 31 COMMUNICATING SEQUENTIAL PROCESSES Page 3 of 31 THE

More information

Re-engineering engineering Home Service Robots Improving Software Reliability: A Case Study. Moonzoo Kim, etc

Re-engineering engineering Home Service Robots Improving Software Reliability: A Case Study. Moonzoo Kim, etc Re-engineering engineering Home Service Robots Improving Software Reliability: A Case Study Moonzoo Kim, etc Agenda Introduction Re-engineering engineering Software Architecture Control Plane Re-engineering

More information

Embedded Software Engineering

Embedded Software Engineering Embedded Software Engineering 3 Unit Course, Spring 2002 EECS Department, UC Berkeley Christoph Kirsch www.eecs.berkeley.edu/~fresco/giotto/course-2002 It s significant $4 billion development effort >

More information

Ur/Web: A Simple Model for Programming the Web. Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015

Ur/Web: A Simple Model for Programming the Web. Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015 Ur/Web: A Simple Model for Programming the Web Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015 Ur / Web Ur A new general-purpose typed functional language λ Web Tools for implementing modern three-tier

More information

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Nicolas Bettenburg 1 Universitaet des Saarlandes, D-66041 Saarbruecken, nicbet@studcs.uni-sb.de Abstract. As traditional

More information

Cyber Physical System Verification with SAL

Cyber Physical System Verification with SAL Cyber Physical System Verification with July 22, 2013 Cyber Physical System Verification with Outline 1 2 3 4 5 Cyber Physical System Verification with Table of Contents 1 2 3 4 5 Cyber Physical System

More information

CS193X: Web Programming Fundamentals

CS193X: Web Programming Fundamentals CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) CS193X schedule Today - MongoDB - Servers and MongoDB Friday - Web application architecture - Authentication MongoDB installation

More information

Parsing Scheme (+ (* 2 3) 1) * 1

Parsing Scheme (+ (* 2 3) 1) * 1 Parsing Scheme + (+ (* 2 3) 1) * 1 2 3 Compiling Scheme frame + frame halt * 1 3 2 3 2 refer 1 apply * refer apply + Compiling Scheme make-return START make-test make-close make-assign make- pair? yes

More information

Using Scala for building DSL s

Using Scala for building DSL s Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain

More information

55249: Developing with the SharePoint Framework Duration: 05 days

55249: Developing with the SharePoint Framework Duration: 05 days Let s Reach For Excellence! TAN DUC INFORMATION TECHNOLOGY SCHOOL JSC Address: 103 Pasteur, Dist.1, HCMC Tel: 08 38245819; 38239761 Email: traincert@tdt-tanduc.com Website: www.tdt-tanduc.com; www.tanducits.com

More information

Using and Compiling Esterel

Using and Compiling Esterel Using and Compiling Esterel Stephen A. Edwards Columbia University Department of Computer Science sedwards@cs.columbia.edu http://www.cs.columbia.edu/ sedwards/ Memocode Tutorial, July 11, 2005 The Esterel

More information

JavaScript Fundamentals_

JavaScript Fundamentals_ JavaScript Fundamentals_ HackerYou Course Syllabus CLASS 1 Intro to JavaScript Welcome to JavaScript Fundamentals! Today we ll go over what programming languages are, JavaScript syntax, variables, and

More information

Lecture 2: January 24

Lecture 2: January 24 CMPSCI 677 Operating Systems Spring 2017 Lecture 2: January 24 Lecturer: Prashant Shenoy Scribe: Phuthipong Bovornkeeratiroj 2.1 Lecture 2 Distributed systems fall into one of the architectures teaching

More information

Esterel. Software Environment

Esterel. Software Environment Esterel Software Environment xesterel GUI(v5_9x) Visit //www.esterel-technologies.com for academic version 2 Project name Esterel Studio Strl file name Tree pane Textual Document pane Main Tool icons console

More information

Functional Programming and Parallel Computing

Functional Programming and Parallel Computing Functional Programming and Parallel Computing Björn Lisper School of Innovation, Design, and Engineering Mälardalen University bjorn.lisper@mdh.se http://www.idt.mdh.se/ blr/ Functional Programming and

More information

Concurrency Analysis of Asynchronous APIs

Concurrency Analysis of Asynchronous APIs Concurrency Analysis of Asynchronous APIs Anirudh Santhiar and Aditya Kanade April 2, 2016 Computer Science and Automation, IISc Introduction Asynchronous Programming Model1 A way to organize programs

More information

SCCharts. Sequentially Constructive Charts

SCCharts. Sequentially Constructive Charts SCCharts Sequentially Constructive Charts Reinhard von Hanxleden, Björn Duderstadt, Christian Motika, Steven Smyth, Michael Mendler, Joaquin Aguado, Stephen Mercer, and Owen O Brien Real-Time Systems and

More information

Operating Systems Overview. Chapter 2

Operating Systems Overview. Chapter 2 1 Operating Systems Overview 2 Chapter 2 3 An operating System: The interface between hardware and the user From the user s perspective: OS is a program that controls the execution of application programs

More information

AJAX: The Basics CISC 282 March 25, 2014

AJAX: The Basics CISC 282 March 25, 2014 AJAX: The Basics CISC 282 March 25, 2014 Synchronous Communication User and server take turns waiting User requests pages while browsing Waits for server to respond Waits for the page to load in the browser

More information

AJAX: Introduction CISC 282 November 27, 2018

AJAX: Introduction CISC 282 November 27, 2018 AJAX: Introduction CISC 282 November 27, 2018 Synchronous Communication User and server take turns waiting User requests pages while browsing Waits for server to respond Waits for the page to load in the

More information

Lab 4: Interrupts and Realtime

Lab 4: Interrupts and Realtime Lab 4: Interrupts and Realtime Overview At this point, we have learned the basics of how to write kernel driver module, and we wrote a driver kernel module for the LCD+shift register. Writing kernel driver

More information

Welcome to CS50 section! This is Week 10 :(

Welcome to CS50 section! This is Week 10 :( Welcome to CS50 section! This is Week 10 :( This is our last section! Final project dates Official proposals: due this Friday at noon Status report: due Monday, Nov 28 at noon Hackathon: Thursday, Dec

More information

CS 498RK FALL RESTFUL APIs

CS 498RK FALL RESTFUL APIs CS 498RK FALL 2017 RESTFUL APIs Designing Restful Apis blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api Resources

More information

1Z Oracle. Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert

1Z Oracle. Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Oracle 1Z0-895 Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-895 Answer: F QUESTION: 284 Given:

More information

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012 Eike Ritter 1 Modified: October 16, 2012 Lecture 8: Operating Systems with C/C++ School of Computer Science, University of Birmingham, UK 1 Based on material by Matt Smart and Nick Blundell Outline 1 Concurrent

More information

WebGL Seminar: O3D. Alexander Lokhman Tampere University of Technology

WebGL Seminar: O3D. Alexander Lokhman Tampere University of Technology WebGL Seminar: O3D Alexander Lokhman Tampere University of Technology What is O3D? O3D is an open source JavaScript API for creating rich, interactive 3D applications in the browser Created by Google and

More information

Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios

Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Simone Bordet sbordet@intalio.com 1 Agenda What are Comet web applications? Impacts of Comet web applications WebSocket

More information

Esterel. Software Environment

Esterel. Software Environment Esterel Software Environment xesterel GUI(v5_9x) Visit //www.esterel-technologies.com for academic version 2 Project name Esterel Studio Strl file name Tree pane Textual Document pane Main Tool icons console

More information

Introduction to Express.js. CSC309 Feb. 6, 2015 Surya Nallu

Introduction to Express.js. CSC309 Feb. 6, 2015 Surya Nallu Introduction to Express.js CSC309 Feb. 6, 2015 Surya Nallu What is Express.js? Web application framework for Node.js Light-weight and minimalist Provides boilerplate structure & organization for your web-apps

More information

The SugarCubes Tool Box

The SugarCubes Tool Box The SugarCubes Tool Box Frédéric BOUSSINOT, Jean-Ferdy SUSINI INRIA EMP-CMA/Meije 2004 route des lucioles F-06902 Sophia-Antipolis fb@sophia.inria.fr, jfsusini@sophia.inria.fr Abstract The SugarCubes are

More information

Synchronous reactive programming

Synchronous reactive programming Synchronous reactive programming Marcus Sundman Department of Computer Science Åbo Akademi University, FIN-20520 Åbo, Finland e-mail: marcus.sundman@iki.fi URL: http://www.iki.fi/marcus.sundman/ Abstract

More information

Processes and Threads

Processes and Threads COS 318: Operating Systems Processes and Threads Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318 Today s Topics u Concurrency

More information

Buy a Feature: an Adventure in Immutability and Actors. David Pollak BayFP August 22, 2008

Buy a Feature: an Adventure in Immutability and Actors. David Pollak BayFP August 22, 2008 Buy a Feature: an Adventure in Immutability and Actors David Pollak BayFP August 22, 2008 David Pollak Not strict, but pretty lazy Lead developer for Lift web framework Scala since November 2006, Ruby/Rails,

More information

Language Extensions. present [C and not pre(a or B or C)] then p else q end

Language Extensions. present [C and not pre(a or B or C)] then p else q end A Language Extensions The full Esterel V5 language includes the Kernel Esterel primitives and derived statements whose semantics are given by structural expansion into the primitives. The full language

More information

PROCESSES AND THREADS

PROCESSES AND THREADS PROCESSES AND THREADS A process is a heavyweight flow that can execute concurrently with other processes. A thread is a lightweight flow that can execute concurrently with other threads within the same

More information

Updates on SCCharts Christian Motika Steven Smyth

Updates on SCCharts Christian Motika Steven Smyth Updates on SCCharts Updates on SCCharts Christian Motika Steven Smyth SYNCHRON 2015 04. DEC 2015, Kiel 1 Reactive System Updates on SCCharts Safety-critical systems State based reactions Concurrency Synchronous

More information

Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode

Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode Damien Ciabrini Manuel Serrano firstname.lastname@sophia.inria.fr INRIA Sophia Antipolis 2004 route des Lucioles - BP 93 F-06902

More information

Chapter 1 - Development Setup of Angular

Chapter 1 - Development Setup of Angular Chapter 1 - Development Setup of Angular Objectives Key objectives of this chapter Angular Files and Dependencies Node.js Node package manager (npm) package.json Semantic version numbers Installing Angular

More information

ClojureScript. as a compilation target to JS. Michiel Vijay FP AMS October 16th 2014

ClojureScript. as a compilation target to JS. Michiel Vijay FP AMS October 16th 2014 ClojureScript as a compilation target to JS Michiel Borkent @borkdude Vijay Kiran @vijaykiran FP AMS October 16th 2014 This work is licensed under a Creative Commons Attribution 4.0 International License.

More information

NODE.JS SERVER SIDE JAVASCRIPT. Introduc)on Node.js

NODE.JS SERVER SIDE JAVASCRIPT. Introduc)on Node.js NODE.JS SERVER SIDE JAVASCRIPT Introduc)on Node.js Node.js was created by Ryan Dahl starting in 2009. For more information visit: http://www.nodejs.org 1 What about Node.js? 1. JavaScript used in client-side

More information

Scala Actors. Scalable Multithreading on the JVM. Philipp Haller. Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland

Scala Actors. Scalable Multithreading on the JVM. Philipp Haller. Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland Scala Actors Scalable Multithreading on the JVM Philipp Haller Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland The free lunch is over! Software is concurrent Interactive applications

More information

Removing Cycles in Esterel Programs

Removing Cycles in Esterel Programs Removing Cycles in Esterel Programs Dissertation zur Erlangung des akademischen Grades Doktor der Naturwissenschaften (Dr. rer. nat.) der Technischen Fakultät der Christian-Albrechts-Universität zu Kiel

More information

Introduction to Asynchronous Programming Fall 2014

Introduction to Asynchronous Programming Fall 2014 CS168 Computer Networks Fonseca Introduction to Asynchronous Programming Fall 2014 Contents 1 Introduction 1 2 The Models 1 3 The Motivation 3 4 Event-Driven Programming 4 5 select() to the rescue 5 1

More information

Why I still develop synchronous web in the asyncio era. April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy

Why I still develop synchronous web in the asyncio era. April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy Why I still develop synchronous web in the asyncio era April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy Who am I? I m Gio! pronounced as Joe trust me, I m a physicist :) code principally

More information

Process Description and Control

Process Description and Control Process Description and Control 1 Process:the concept Process = a program in execution Example processes: OS kernel OS shell Program executing after compilation www-browser Process management by OS : Allocate

More information

Manoj Kumar- From Call back's hell to using Async Await: Automated testing with JavaScript

Manoj Kumar- From Call back's hell to using Async Await: Automated testing with JavaScript Manoj Kumar- From Call back's hell to using Async Await: Automated testing with JavaScript ManojKumar: Welcome everyone again. We are here to see about a primer on Selenium WebDriver JavaScript and Protractor

More information

JSON Evaluation. User Store

JSON Evaluation. User Store Overview Demo following technologies: JSON Node Package Manager npm Node modules. Very brief introduction to asynchronous programming using async and await. Mongo db JSON JavaScript Object Notation. Inductive

More information

EE382N.23: Embedded System Design and Modeling

EE382N.23: Embedded System Design and Modeling EE382N.23: Embedded System Design and Modeling Lecture 3 Language Semantics Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu Lecture 3: Outline

More information

C25: Creating Web Services using the Spring Framework

C25: Creating Web Services using the Spring Framework CISC 3120 C25: Creating Web Services using the Spring Framework Hui Chen Department of Computer & Information Science CUNY Brooklyn College 5/9/2018 CUNY Brooklyn College 1 Outline Recap & Review The Model-View-Controller

More information

Cross-Platform, Functional, Reactive GUIs

Cross-Platform, Functional, Reactive GUIs Cross-Platform, Functional, Reactive GUIs Welcome! CARLOS AGUAYO SOFTWARE ENGINEER MANAGER @carlosaguayo81 Credits ANTONIO ANDRADE SOFTWARE ARCHITECT SUVAJIT GUPTA VP, ENGINEERING Modern UIs: Characteristics

More information

Synchronous Specification

Synchronous Specification Translation Validation for Synchronous Specification in the Signal Compiler Van-Chan Ngo Jean-Pierre Talpin Thierry Gautier INRIA Rennes, France FORTE 2015 Construct a modular translation validationbased

More information

An Esterel Virtual Machine for Embedded Systems

An Esterel Virtual Machine for Embedded Systems SLA 6 An Esterel Virtual Machine for Embedded Systems Becky lummer Department of Computer Science Columbia University New York, USA Mukul Khajanchi Department of Computer Science Columbia University New

More information

McLab tools on the web. Deepanjan Roy Supervisor: Prof. Laurie Hendren

McLab tools on the web. Deepanjan Roy Supervisor: Prof. Laurie Hendren McLab tools on the web Deepanjan Roy Supervisor: Prof. Laurie Hendren Brief overview of the McLab project LANGUAGES, COMPILERS, AND VIRTUAL MACHINES Dynamic Scientific Programming Languages (Especially

More information

Frontend II: Javascript and DOM Programming. Wednesday, January 7, 15

Frontend II: Javascript and DOM Programming. Wednesday, January 7, 15 6.148 Frontend II: Javascript and DOM Programming Let s talk about Javascript :) Why Javascript? Designed in ten days in December 1995! How are they similar? Javascript is to Java as hamster is to ham

More information

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary Course Summary Description This five-day instructor-led course is intended for developers who want to be able to create client-side applications with SharePoint Framework. In this course, students will

More information

David Pollak CUFP September 26 th, 2008

David Pollak CUFP September 26 th, 2008 Buy a Feature Adventure in Immutability and Actors David Pollak CUFP September 26 th, 2008 David Pollak Not strict, but pretty lazy Lead developer for Lift web framework Scala since November 2006, Ruby/Rails,

More information

EI-PaaS Node-RED Plug-ins User Manual

EI-PaaS Node-RED Plug-ins User Manual EI-PaaS Node-RED Plug-ins User Manual The document is provided to you for references and is subject to change. Please always get latest version from Advantech to sync. Table of Content Introduction...

More information

Node.js. Node.js Overview. CS144: Web Applications

Node.js. Node.js Overview. CS144: Web Applications Node.js Node.js Overview JavaScript runtime environment based on Chrome V8 JavaScript engine Allows JavaScript to run on any computer JavaScript everywhere! On browsers and servers! Intended to run directly

More information

Programming Languages for Real-Time Systems. LS 12, TU Dortmund

Programming Languages for Real-Time Systems. LS 12, TU Dortmund Programming Languages for Real-Time Systems Prof. Dr. Jian-Jia Chen LS 12, TU Dortmund 20 June 2016 Prof. Dr. Jian-Jia Chen (LS 12, TU Dortmund) 1 / 41 References Slides are based on Prof. Wang Yi, Prof.

More information

RequireJS Javascript Modules for the Browser. By Ben Keith Quoin, Inc.

RequireJS Javascript Modules for the Browser. By Ben Keith Quoin, Inc. RequireJS Javascript Modules for the Browser By Ben Keith Quoin, Inc. Traditional Browser JS One global namespace Often inline JS code embedded directly in HTML Many tags with hidden ordering

More information

IN Development in Platform Ecosystems Lecture 3: json, ajax, APIs

IN Development in Platform Ecosystems Lecture 3: json, ajax, APIs IN5320 - Development in Platform Ecosystems Lecture 3: json, ajax, APIs 3rd of September 2018 Department of Informatics, University of Oslo Magnus Li - magl@ifi.uio.no 1 Today s lecture 1. Objects and

More information

Reinhard v. Hanxleden 1, Michael Mendler 2, J. Aguado 2, Björn Duderstadt 1, Insa Fuhrmann 1, Christian Motika 1, Stephen Mercer 3 and Owen Brian 3

Reinhard v. Hanxleden 1, Michael Mendler 2, J. Aguado 2, Björn Duderstadt 1, Insa Fuhrmann 1, Christian Motika 1, Stephen Mercer 3 and Owen Brian 3 Sequentially Constructive Concurrency * A conservative extension of the Synchronous Model of Computation Reinhard v. Hanxleden, Michael Mendler 2, J. Aguado 2, Björn Duderstadt, Insa Fuhrmann, Christian

More information

WebApp development. Outline. Web app structure. HTML basics. 1. Fundamentals of a web app / website. Tiberiu Vilcu

WebApp development. Outline. Web app structure. HTML basics. 1. Fundamentals of a web app / website. Tiberiu Vilcu Outline WebApp development Tiberiu Vilcu Prepared for EECS 411 Sugih Jamin 20 September 2017 1 2 Web app structure HTML basics Back-end: Web server Database / data storage Front-end: HTML page CSS JavaScript

More information

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx CREATE SASSY WEB PARTS Developer Guide to SASS usage in SPFx !!! WARNING!!! YOU WILL SEE SOURCE CODE!!! WARNING!!! OUR GOALS Sketch and develop web parts Create your own reusable CSS Handle external

More information

Advance Mobile& Web Application development using Angular and Native Script

Advance Mobile& Web Application development using Angular and Native Script Advance Mobile& Web Application development using Angular and Native Script Objective:- As the popularity of Node.js continues to grow each day, it is highly likely that you will use it when you are building

More information

Programming in Scala Second Edition

Programming in Scala Second Edition Programming in Scala Second Edition Martin Odersky, Lex Spoon, Bill Venners artima ARTIMA PRESS WALNUT CREEK, CALIFORNIA Contents Contents List of Figures List of Tables List of Listings Foreword Foreword

More information

ECMAScript 2015 and beyond The Future of JavaScript is Now!

ECMAScript 2015 and beyond The Future of JavaScript is Now! ECMAScript 2015 and beyond The Future of JavaScript is Now! Tom Van Cutsem JS.BE Meetup @tvcutsem Talk Outline Part I: 20 years of JavaScript (or, the long road to ECMAScript 6) Part II: a brief tour of

More information

Fuzzilli. (Guided-)fuzzing for JavaScript engines. Samuel Groß

Fuzzilli. (Guided-)fuzzing for JavaScript engines. Samuel Groß Fuzzilli (Guided-)fuzzing for JavaScript engines Samuel Groß (saelo@google.com) Motivation Cool bugs in JS engine runtime implementations, JIT compilers, etc. var a = [1, 2, 3, 4, 5]; var i = {}; i.valueof

More information

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey CSC400 - Operating Systems 3. Process Concepts J. Sumey Overview Concurrency Processes & Process States Process Accounting Interrupts & Interrupt Processing Interprocess Communication CSC400 - Process

More information

System Level Design and Verification Using a Synchronous Language

System Level Design and Verification Using a Synchronous Language System Level Design and Verification Using a Synchronous Language Gérard Berry Esterel Technologies France gerard.berry@estereltechnologies.com Michael Kishinevsky Intel Corp. Hillsboro, OR michael.kishinevsky@intel.com

More information

A Brief History of Distributed Programming: RPC. YOW Brisbane 2016

A Brief History of Distributed Programming: RPC. YOW Brisbane 2016 A Brief History of Distributed Programming: RPC YOW Brisbane 2016 Christopher Meiklejohn Université catholique de Louvain @cmeik christophermeiklejohn.com Caitie McCaffrey Distributed Systems Engineer

More information

Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan

Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Language Processing Systems Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Semantic Analysis Compiler Architecture Front End Back End Source language Scanner (lexical analysis)

More information

Web Application Development

Web Application Development Web Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie SERVER SIDE JAVASCRIPT PART 1 Outline 1.

More information

The Esterel Language. The Esterel Version. Basic Ideas of Esterel

The Esterel Language. The Esterel Version. Basic Ideas of Esterel The Synchronous Language Esterel OMS W4995-02 Prof. Stephen. Edwards Fall 2002 olumbia University epartment of omputer Science The Esterel Language eveloped by Gérard erry starting 1983 Originally for

More information

Java SE7 Fundamentals

Java SE7 Fundamentals Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various

More information

Interpreters. Prof. Clarkson Fall Today s music: Step by Step by New Kids on the Block

Interpreters. Prof. Clarkson Fall Today s music: Step by Step by New Kids on the Block Interpreters Prof. Clarkson Fall 2017 Today s music: Step by Step by New Kids on the Block Review Previously in 3110: functional programming modular programming data structures Today: new unit of course:

More information

Microservices with Node.js

Microservices with Node.js Microservices with Node.js Objectives In this module we will discuss: Core Node.js concepts Node Package Manager (NPM) The Express Node.js package The MEAN stack 1.1 What is Node.js? Node.js [ https://nodejs.org/

More information

VS08 This One Goes to Going Parallel with PFX, PLINQ, TPL and Async Keywords

VS08 This One Goes to Going Parallel with PFX, PLINQ, TPL and Async Keywords VS08 This One Goes to Going Parallel with PFX, PLINQ, TPL and Async Keywords Brian Noyes Chief Architect, IDesign Inc (www.idesign.net) brian.noyes@idesign.net, @briannoyes About Brian Chief Architect

More information

INF5750. Introduction to JavaScript and Node.js

INF5750. Introduction to JavaScript and Node.js INF5750 Introduction to JavaScript and Node.js Outline Introduction to JavaScript Language basics Introduction to Node.js Tips and tools for working with JS and Node.js What is JavaScript? Built as scripting

More information

Ajax HTML5 Cookies. Sessions 1A and 1B

Ajax HTML5 Cookies. Sessions 1A and 1B Ajax HTML5 Cookies Sessions 1A and 1B JavaScript Popular scripting language: Dynamic and loosely typed variables. Functions are now first-class citizens. Supports OOP. var simple = 2; simple = "I'm text

More information