McLab Tutorial www.sable.mcgill.ca/mclab Laurie Hendren, Rahul Garg and Nurudeen Lameed Other McLab team members: Andrew Casey, Jesse Doherty, Anton Dubrau,

Slides:



Advertisements
Similar presentations
Chapter 8 Technicalities: Functions, etc. Bjarne Stroustrup
Advertisements

Introductions to Parallel Programming Using OpenMP
Vineet Kumar and Laurie Hendren McGill University MiX10 Compiling MATLAB for High Peformance Computing.
McLab Tutorial Part 8 – Wrap Up Summary Ongoing and Future Work Further Sources 6/4/2011Wrap Up- 1McLab Tutorial, Laurie Hendren,
 Introduction to Programming History of programming.
McLab Tutorial Part 2 – Introduction to MATLAB Functions and Scripts Data and Variables Other Tricky "Features" 6/4/2011Matlab-
Dynamic Shape and Data Structure Analysis in Java Presented by Sokhom Pheng (Supervised by Clark Verbrugge) McGill University October 17 th 2005.
PHP CSCE 330 February 6, 2003 Group Members: Antwan B. Phan George Hwang Luat Vu Programming Language Presentation.
Compilers and Interpreters. Translation to machine language Every high level language needs to be translated to machine code There are different ways.
1 Outline 7.1 Introduction 7.2 Implementing a Time Abstract Data Type with a Class 7.3 Special Attributes 7.4Controlling Access to Attributes 7.4.1Get.
CSE 1301 J Lecture 2 Intro to Java Programming Richard Gesick.
What is R Muhammad Omer. What is R  R is the programing language software for statistical computing and data analysis  The R language is extensively.
Python Introduction.
Name: Md. Iqbal Hossain Roll : Computer programming  Programming is a lot of fun and extraordinarily useful. While you learn to program,
Introduction to High-Level Language Programming
CSC 110 A 1 CSC 110 Introduction to Python [Reading: chapter 1]
VIRTUAL PROTOTYPING of ROBOTS DYNAMICS E. Tarabanov.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
By: Felegh Solomon ITEC SPRING 2013 CHAPTER 4: KEY CONSTRUCTION DECISIONS.
McLab Tutorial Part 6 – Introduction to the McLab Backends MATLAB-to-MATLAB MATLAB-to-Fortran90 (McFor) McVM with JIT 6/4/2011Backends-
Adapting Legacy Computational Software for XMSF 1 © 2003 White & Pullen, GMU03F-SIW-112 Adapting Legacy Computational Software for XMSF Elizabeth L. White.
McLab Tutorial Part 4 – McLab Intermediate Representations High-level McAST Lower-level McLAST Transforming McAST to McLAST 6/4/2011IR-
Comp 311 Principles of Programming Languages Lecture 1 Course Overview and Culture Corky Cartwright August 25, 2008.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Chapter 1. Introduction.
An Adaptive, Region-based Allocator for Java Feng Qian, Laurie Hendren {fqian, Sable Research Group School of Computer Science McGill.
Introduction to Programming Peggy Batchelor.
Abc Compiler Zak Fry. Who and Where Programming Tools Group at Oxford University, UK – Oege de Moor Sable Research Group at McGill University, Quebec.
McLab Tutorial Part 5 – Introduction to the McLab Analysis Framework Exploring the Main Components Creating a Simple Analysis.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Programming Languages: Scratch Intro to Scratch. Lower level versus high level Clearly, lower level languages can be tedious Higher level languages quickly.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Through the development of advanced middleware, Grid computing has evolved to a mature technology in which scientists and researchers can leverage to gain.
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
Hands-on Introduction to R. We live in oceans of data. Computers are essential to record and help analyse it. Competent scientists speak C/C++, Java,
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
1CPSD Software Infrastructure for Application Development Laxmikant Kale David Padua Computer Science Department.
McLab Tutorial Part 3 – McLab Frontend Frontend organization Introduction to Beaver Introduction to JastAdd 6/4/2011 Frontend-1McLab.
Obstacles and opportunities with using visual and domain-specific languages in scientific programming Michael Jones, Christopher Scaffidi School of Electrical.
Component 4: Introduction to Information and Computer Science Unit 5: Overview of Programming Languages, Including Basic Programming Concepts Lecture 2.
Siena Computational Crystallography School 2005
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 1: Introduction.
Vineet Kumar and Laurie Hendren McGill University MiX10 First steps to compiling MATLAB to X10.
 Programming - the process of creating computer programs.
Introduction Mehdi Einali Advanced Programming in Java 1.
CIS 601 Fall 2003 Introduction to MATLAB Longin Jan Latecki Based on the lectures of Rolf Lakaemper and David Young.
Software Development Introduction
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
INTRODUCTION: This report contains the results of the International Council of System Engineer (INCOSE) UML/SySML Team efforts to produce UML/SySML Architecture.
Python Scripting for Computational Science CPS 5401 Fall 2014 Shirley Moore, Instructor October 6,
COMP 2100 From Python to Java
CST 1101 Problem Solving Using Computers
Presentation On Computer programming
CSC391/691 Intro to OpenCV Dr. Rongzhong Li Fall 2016
Computer Software: Programming
Software for scientific calculations
Python Training in Chennai
McLAB: Compiler Tools for MATLAB
Introduction to MATLAB
EECE 310 Software Engineering
Brief Intro to Python for Statistics
Language Extensions for MATLAB
McLAB: A toolkit for static and dynamic compilers for MATLAB
CSC 142 Introduction to Java [Reading: chapters 1 & 2]
Simulation And Modeling
Introduction to Computer Science
Presentation transcript:

McLab Tutorial Laurie Hendren, Rahul Garg and Nurudeen Lameed Other McLab team members: Andrew Casey, Jesse Doherty, Anton Dubrau, Jun Li, Amina Aslam, Toheed Aslam, Maxime Chevalier- Boisvert, Soroush Radpour, Oliver Savary, Maja Frydrychowicz, Clark Verbrugge Sable Research Group School of Computer Science McGill University, Montreal, Canada 6/4/2011Intro - 1McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1

Tutorial Overview Why MATLAB? Introduction to MATLAB – challenges Overview of the McLab tools – Introduction to the front-end and extensions – IRs, Flow analysis framework and examples – Back-ends including the McVM virtual machine Wrap-up 6/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1Intro - 2

Nature Article: “Why Scientific Computing does not compute 38% of scientists spend at least 1/5 th of their time programming. Codes often buggy, sometimes leading to papers being retracted. Self-taught programmers. Monster codes, poorly documented, poorly tested, and often used inappropriately. 45% say scientists spend more time programming than 5 years ago. 6/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1Intro - 3

MATLAB PERL Python Domain-specific Intro - 4 FORTRAN C/C++ Java AspectJ 6/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1

A lot of MATLAB programmers! Started as an interface to standard FORTRAN libraries for use by students.... but now – 1 million MATLAB programmers in 2004, number doubling every 1.5 to 2 years. – over 1200 MATLAB/Simulink books – used in many sciences and engineering disciplines Even more “unofficial” MATLAB programmers including those using free systems such as Octave or SciLab. 6/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1Intro - 5

Intro -66/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1

Why do Scientists choose MATLAB? Intro - 7 MATLAB FORTRAN 6/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1

Intro - 86/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1

96/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1

No types and “flexible” syntax Intro -106/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1

Intro - 116/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1

Intro - 12 No formal standards for MATLAB 6/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1

Scientists / Engineers Comfortable with informal descriptions and “how to” documentation. Don’t really care about types and scoping mechanisms, at least when developing small prototypes. Appreciate libraries, simple tool support, and interactive development tools. Programming Language / Compiler Researchers Prefer more formal language specifications. Prefer well-defined types (even if dynamic) and well- defined scoping and modularization mechanisms. Appreciate “harder/deeper/more beautiful” research problems. 6/4/2011 McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1 Intro - 13 Culture Clash

Goals of the McLab Project Improve the understanding and documentation of the semantics of MATLAB. Provide front-end compiler tools suitable for MATLAB and language extensions of MATLAB. Provide a flow-analysis framework and a suite of analyses suitable for a wide range of compiler/soft. eng. applications. Provide back-ends that enable experimentation with JIT and ahead-of-time compilation. 6/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1Intro - 14

6/4/2011McLab Tutorial, Laurie Hendren, Rahul Garg and Nurudeen Lameed, Part 1Intro -15 Overview of McLab/Tutorial