Lego.Net Bernhard Rabe. Fischertechnik.NET ? Bernhard Rabe.

Slides:



Advertisements
Similar presentations
Lecture 2 - Introduction Objective C is used primarily for application development on Apple's Mac OS X and iPhone. On the Apple it is used together with.
Advertisements

A LEGO-like Lightweight Component Architecture for Organic Computing Thomas Schöbel-Theuer, Universität Stuttgart
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
1 Starting a Program The 4 stages that take a C++ program (or any high-level programming language) and execute it in internal memory are: Compiler - C++
CS105 INTRODUCTION TO COMPUTER CONCEPTS INTRO TO PROGRAMMING Instructor: Cuong (Charlie) Pham.
By Neng-Fa Zhou Compiler Construction CIS 707 Prof. Neng-Fa Zhou
Lego RCX Assembler and a Case Study Luis Paris Dept. of Computer Science University of Mississippi.
Modern Compiler Internal Representations Silvius Rus 1/23/2002.
Programming Our First Java Program Yingcai Xiao. What to Do Set up for Java Programming Write our first Java Program with IDE Write our first Java Program.
Advanced Object-Oriented Programming Features
Reference Book: Modern Compiler Design by Grune, Bal, Jacobs and Langendoen Wiley 2000.
Data Structure and Algorithm 1 Yingcai Xiao. You Me The Course (
Programming A Historic Perspective on Code Reuse Yingcai Xiao.
Introduction to Java.
COP4020 Programming Languages
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
Types of software. Sonam Dema..
Computers: Software Patrice Koehl Computer Science UC Davis.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Introduction to Programming Language CS105 Programming Language First-generation: Machine language Second-generation: Assembly language Third-generation:
September 7, September 7, 2015September 7, 2015September 7, 2015 Azusa, CA Sheldon X. Liang Ph. D. Computer Science at Azusa Pacific University.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
C# A 1 CSC 298 Introduction to C#. C# A 2 What to expect in this class  Background: knowledge of an object oriented language of the C++, Java, … family.
CIS NET Applications1 Chapter 2 –.NET Component- Oriented Programming Essentials.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Operating.
CS795/895: Introduction. Topics Distributed Systems –Availability –Performance –Web Services Security –Authentication –Authorization –Confidentiality.
Self-Contained CLI Assemblies Dipl.-Inf. Bernhard Rabe Operating Systems & Middleware Group Hasso-Plattner-Institute University of Potsdam.
SLego: A Squeak Implementation of Lego Mindstorms Alexandre Bergel Institut fuer Mathematik und Informatik University Bern
Chapter 1 Introduction. Chapter 1 -- Introduction2  Def: Compiler --  a program that translates a program written in a language like Pascal, C, PL/I,
Overview of Java CSCI 392 Day One. Running C code vs Java code C Source Code C Compiler Object File (machine code) Library Files Linker Executable File.
Computer Science Faculty School of Software Engineering C INTERPRETER AND DEBUGGER (ISO/IEC 9899:2011) Developer: student of 203SE group: Lukyanov Dmitry.
Minds and Computers 2.1 The RCX l Hitachi H8/3297 series processor l 3 inputs/sensors (1, 2, 3) l 3 outputs/motors (A, B, C) l 32k RAM/ 16k ROM ä 12 kB.
 Programming - the process of creating computer programs.
1 Compiler & its Phases Krishan Kumar Asstt. Prof. (CSE) BPRCE, Gohana.
Introduction Why are virtual machines interesting?
Slide 6-1 Chapter 6 System Software Considerations Introduction to Information Systems Judith C. Simon.
A Microsoft.NET Front-End for GCC Bernhard Rabe Martin von Löwis Jan Möller Operating Systems & Middleware Group Hasso-Plattner-Institute, University of.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
Introduction to Programming 1 1 2Introduction to Java.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Introduction of C# and.NET Sung-Dong Kim, Dept. of Computer Engineering, Hansung University.
CIS 234: Object-Oriented Programming with Java
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Chapter 10 Application Development
Computer System Structures
.NET Native & CoreRT.
Before You Begin Nahla Abuel-ola /WIT.
PRINCIPLES OF COMPILER DESIGN
Introduction to Compiler Construction
Introduction to programming
Programming Language Hierarchy, Phases of a Java Program
WHAT DO COMPILATION STRATEGIES HAVE TO DO WITH WEB CONTENT DELIVERY?
Topic: Difference b/w JDK, JRE, JIT, JVM
C# and the .NET Framework
Java programming lecture one
2.1. Compilers and Interpreters
DotnetConf 11/14/2018 3:27 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE.
Blazor C# in the Browser Derek codeopinion.com.
Virtual Machines (Introduction to Virtual Machines)
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
PROGRAM AT RUNTIME Subject code: CSCI-620
DOT NET ARCHITECTURE (OR) DOT NET FRAME WORK ARCHITECTURE
System Programming By Prof.Naveed Zishan.
LEGO Mindstorms Robot and Java
CS105 Introduction to Computer Concepts Intro to programming
IS 135 Business Programming
CS4540 Special Topics in Web Development Introduction to .NET
Hypervisor A hypervisor or virtual machine monitor (VMM) is computer software, firmware or hardware that creates and runs virtual machines. A computer.
Presentation transcript:

Lego.Net Bernhard Rabe

Fischertechnik.NET ? Bernhard Rabe

3 Motivation Common programming model Multiple language support Programms can not damage the RCX runtime system (memory access) – important for Web experiments

4 Ways to Go Compiling.NET usercode with a RCX library IL to target code compiler IL interpreter Sourcecode transformation

5.NET Usercode and RCX Library Original Lego firmware No running program on the RCX Sending Opcodes via infrared link Not full feature set (Sensors must be polled) All computation are made on the PC Running as DCL Experiment (testing) No autonomic processing

6 IL to Hitachi Compiler Hitachi backend for GCC available GCC frontend has to parse the IL (ILDASM Output at the moment) Build a Code Tree for Backend Includes no runtime system Now: Calling of static functions with parameters implemented

7 IL Interpreter on RCX Base runtime system which can process special prepared images Assembly (Exe) has to be converted Whole BCL doesn’t fit on RCX (32k – OS) Link Assembly against a special class library – limited feature set The image contains only references to the native RCX function

8 Source Code Transformation Convert.NET Sourcecode to legOS Converter for each.NET language required Possibly loss of functionality and behavior

9 VisualRDK GUI-based development fit for pupils capabilities can create source code for different targets – legOS – DCL API – C# based DCL API – Fischertechnik

10 Future Work Fischertechnik in the DCL ? GCC Frontend for IL and BCL Virtual testbed in schools (VS + VisualRDK)