Ruby in the context of scientific computing
|
|
|
- Lewis Manning
- 10 years ago
- Views:
Transcription
1 Ruby in the context of scientific computing 16 January /24
2 Overview Introduction Characteristics and Features Closures Ruby and Scientific Computing SciRuby Bioruby Conclusion References 2/24
3 Introduction Created by Yukihiro "Matz" Matsumoto First public release in 1995 Specification published in 2010 Was mostly popularized by Ruby on Rails (a web framework) Google searches for "Ruby programming" according to Google Trends 3/24
4 Introduction Main objective: to make developers happy :) The biggest goal of Ruby is developer friendliness, and productivity of application development and intuitive description of program behaviors take precedence over brevity of the language specification itself and ease of implementation. - Specification document RubyGems: package management platform for sharing Ruby programs and libraries gem install mygem 4/24
5 Implementations Many implementations: Ruby MRI (CRuby), YARV, JRuby, Rubinius, IronRuby, Ruby.NET, etc. Ruby MRI: Matz's Ruby Interpreter, also known as CRuby Reference implementation YARV merged with MRI since 1.9 This presentation's focus: Ruby MRI Many plugins and gems might not work with other implementations 5/24
6 Performance Interpreted, dynamically typed Perforamce in the same order of magnitude as Python and PHP...and not as good as compiled, statically-typed languages (C/C++, Java, C#, etc.) 6/24
7 Programming paradigms Supports multiple paradigms Procedural: Procedural-style code outside classes is in the Object class scope Object Oriented: (Almost) everything is an object Even classes E.g., binary operators are just syntactic sugar for method calls: is the same as 1.+(2) Functional Closures Higher-order functions Implicit return 7/24
8 Classes and Modules Classes can be reopened and modified at any point The same can be done with instance objects class String def append_exclamation self + "!" end end No multiple inheritance, no Interfaces Mixins via Modules module Constants PI = E = def pi_squared return PI ** 2 end end class Calculator include Constants end 8/24
9 Type system Dynamic and strong typing Duck typing ( if it walks like a duck an quacks like a duck... ) It is the object's methods and properties, not its class or inheritance status, that determine semantics words = ["This", "is", "a", "sentence"] if words.respond_to?("join") words.join(" ") + "." end => "This is a sentence." 9/24
10 Closures Associated with functional programming (Old) definition from Wikipedia: In computer science, a closure is a first-class function with free variables that are bound in the lexical environment. Closures are functions that can be passed around like objects are bound to the scope where they were created Ruby makes heavy use of closures (via Blocks, Procs and Lambdas) 10/24
11 Blocks Blocks Enclosed with either {} or do/end fibonacci = [1, 1] 10.times do fibonacci << fibonacci[-2] + fibonacci[-1] end => [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144] Methods can be made to accept Blocks as parameters using the yield keyword def pass_arg_to_block(arg) yield arg end pass_arg_to_block(5) { n n * 10 } => 50 11/24
12 Blocks, Procs, Lambdas Blocks are not objects, e.g. can't get passed around Solution: Procs and Lambdas Lambdas are the same as Procs, but: more strict argument checking different handling of return calls multiply_by_ten = Proc.new { n n * 10 } # OR = proc { n n * 10 } # OR = lambda { n n * 10 } pass_arg_to_block(5, &multiply_by_ten) => 50 [1, 2, 3].map(&multiply_by_ten) => [10, 20, 30] 12/24
13 Threads Green threads in 1.8 Native threads in 1.9 Global Interpreter Lock: only one thread executed at a time No true concurrency Better integrity protection (e.g. many extensions are not thread safe) BUT: doesn't atuomatically stop you from writing thread-unsafe code! Other implementations deal with threads differently 13/24
14 Ruby and Scientific Computing Due to historical reasons, Python grew into a widely-used language in scientific computing (SciPy/NumPy, matplotlib, etc.), while Ruby didn't Google's promotion of Python Ruby community being mainly focused on Rails...but such a thing as scientific Ruby does exist: SciRuby BioRuby 14/24
15 SciRuby Collection of libraries for various scientific tasks First (Git) commit in 2011 Might not be ready for mission critical tasks yet Word to the wise: These gems have been tested, but are not battle-hardened. If you re thinking of using NMatrix (or other SciRuby components) to write mission critical code, such as for a self-driving car or controlling an ARKYD 100 satellite, you should expect to encounter a few bugs and be prepared for them. - sciruby.com 15/24
16 SciRuby Visualization Rubyvis (Plotrb?) Statistics and probability Statsample Distribution Numeric Minimization Integration Nmatrix 16/24
17 Rubyvis Plotting require 'rubyvis' vis = Rubyvis::Panel.new do width 150 height 150 bar do data [1, 1.2, 1.7, 1.5, 0.7, 0.3] width 20 height { d d * 80} bottom(0) left {index * 25} end end vis.render outfile = open('rv-out.svg', 'w') outfile.write (vis.to_svg) outfile.close() 17/24
18 Rubyvis: More Plotting 18/24
19 Statsample A statistics suite for Ruby Sample code: require 'statsample' ss_analysis(statsample::graph::boxplot) do n=30 a=rnorm(n-1, 50, 10) b=rnorm(n, 30, 5) c=rnorm(n, 5, 1) a.push(2) boxplot(:vectors=>[a,b,c], :width=>300, :height=>300, :groups=> %w{first first second}, :minimum=>0) end Statsample::Analysis.run # Open svg file on *nix application defined 19/24
20 Minimization and Integration Minimization require 'integration' require 'minimization' d = Minimization::Brent.new(-1000, 20000, proc { x x**2}) d.iterate puts d.x_minimum puts d.f_minimum # Output: # e-31 # e-61 Integration puts Integration.integrate(1, 2, {:tolerance=>1e-10,:method=>:simpson}) { x x**2} normal_pdf=lambda { x (1/Math.sqrt(2*Math::PI))*Math.exp(-(x**2/ 2))} puts Integration.integrate(Integration::MInfini ty, 0, {:tolerance=>1e-10}, &normal_pdf) puts Integration.integrate(0, Integration::Infinity, {:tolerance=>1e-10}, &normal_pdf) # Output: # # 0.5 # /24
21 BioRuby A project that aims to provide a set of tools for tasks in computationial biology and bioinformatics (sequence analysis, pathway analysis, sequence alignment, etc.) Bioinformatics is an interdisciplinary field that develops and improves on methods for storing, retrieving, organizing and analyzing biological data. A major activity in bioinformatics is to develop software tools to generate useful biological knowledge. - Wikipedia A major task in bioinformatics is analyzing character sequences. BioRuby helps with this. Biogem: Tool that aids bioinformaticians in writing plugins and sharing them with the rest of the BioRuby community Image source: 21/24
22 BioRuby: Example bioruby> seq = Bio::Sequence::NA.new("atgcatgcaaaa") ==> "atgcatgcaaaa" bioruby> seq.complement ==> "ttttgcatgcat" bioruby> seq.subseq(3,8) # gets subsequence of positions 3 to 8 (starting from 1) ==> "gcatgc" bioruby> seq.gc_percent ==> 33 bioruby> seq.composition ==> {"a"=>6, "c"=>2, "g"=>2, "t"=>2} bioruby> seq.translate # each three nucleotides represent an amino acid ==> "MHAK" bioruby> seq.translate.codes # (standard) amino acids have abbreviations ==> ["Met", "His", "Ala", "Lys"] bioruby> seq.translate.names ==> ["methionine", "histidine", "alanine", "lysine"] bioruby> seq.translate.molecular_weight ==> bioruby> counts = {'a'=>seq.count('a'),'c'=>seq.count('c'),'g'=>seq.count('g'),'t'=>seq.count('t')} ==> {"a"=>6, "c"=>2, "g"=>2, "t"=>2} bioruby> randomseq = Bio::Sequence::NA.randomize(counts) ==> "aaacatgaagtc" 22/24
23 Conclusion Feature-rich, developer-friendly multi-paradigm language Powerful mixture of object-oriented and functional programming Scientific libraries available Lower performance but higher programmer productivity vs. compiled/statically-typed languages Good for prototyping? Fun to use! 23/24
24 Refrences Official Ruby website Ruby documentation Computer Language Benchmarks Game Closures and Higher-Order Functions Closures A Simple Explanation (Using Ruby) SciRuby BioRuby 24/24
6.170 Tutorial 3 - Ruby Basics
6.170 Tutorial 3 - Ruby Basics Prerequisites 1. Have Ruby installed on your computer a. If you use Mac/Linux, Ruby should already be preinstalled on your machine. b. If you have a Windows Machine, you
COMPARATIVE STUDY OF BROWSER BASED OPEN SOURCE TESTING TOOLS WATIR AND WET
COMPARATIVE STUDY OF BROWSER BASED OPEN SOURCE TESTING TOOLS WATIR AND WET Nisha Gogna Research Scholar, University Institute of Engineering and Technology Panjab University Chandigarh, India Raj Kumari
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
THE ROAD TO CODE. ANDROID DEVELOPMENT IMMERSIVE May 31. WEB DEVELOPMENT IMMERSIVE May 31 GENERAL ASSEMBLY
THE ROAD TO CODE WEB DEVELOPMENT IMMERSIVE May 31 ANDROID DEVELOPMENT IMMERSIVE May 31 GENERAL ASSEMBLY GENERAL ASSEMBLY @GA_CHICAGO WWW.FACEBOOK.COM/GENERALASSEMBLYCHI @GA_CHICAGO GENERAL ASSEMBLY GENERAL
VOIP and Ruby. The Convergence of Web and Voice Applications using Open Source Software. Justin Grammens Localtone Interactive justin@localtone.
VOIP and Ruby The Convergence of Web and Voice Applications using Open Source Software Justin Grammens Localtone Interactive [email protected] VOIP is NOT About Cheap Phone Calls Other companies are
Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example
Overview Elements of Programming Languages Lecture 12: Object-oriented functional programming James Cheney University of Edinburgh November 6, 2015 We ve now covered: basics of functional and imperative
2! Multimedia Programming with! Python and SDL
2 Multimedia Programming with Python and SDL 2.1 Introduction to Python 2.2 SDL/Pygame: Multimedia/Game Frameworks for Python Literature: G. van Rossum and F. L. Drake, Jr., An Introduction to Python -
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
Introduction to Python
1 Daniel Lucio March 2016 Creator of Python https://en.wikipedia.org/wiki/guido_van_rossum 2 Python Timeline Implementation Started v1.0 v1.6 v2.1 v2.3 v2.5 v3.0 v3.1 v3.2 v3.4 1980 1991 1997 2004 2010
Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is
Chris Panayiotou Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is the current buzz in the web development
Chapter 15 Functional Programming Languages
Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,
BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME
BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME System Analysis and Design S.Mohammad Taheri S.Hamed Moghimi Fall 92 1 CHOOSE A PROGRAMMING LANGUAGE FOR THE PROJECT 2 CHOOSE A PROGRAMMING LANGUAGE
Scientific Programming, Analysis, and Visualization with Python. Mteor 227 Fall 2015
Scientific Programming, Analysis, and Visualization with Python Mteor 227 Fall 2015 Python The Big Picture Interpreted General purpose, high-level Dynamically type Multi-paradigm Object-oriented Functional
Interested in Expanding your Technical Skills?
Interested in Expanding your Technical Skills? The ideal learning path to expand your technical knowledge differs based on your experience, goals, and how much time you have available to devote to practicing
Evolution of the Major Programming Languages
142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence
The IBM i on Rails + + Anthony Avison [email protected]. Copyright 2014 PowerRuby, Inc.
The IBM i on Rails + + Anthony Avison [email protected] Copyright 2014 PowerRuby, Inc. Rails on the the IBM i + + Anthony Avison [email protected] Copyright 2014 PowerRuby, Inc. There's something
Intro to scientific programming (with Python) Pietro Berkes, Brandeis University
Intro to scientific programming (with Python) Pietro Berkes, Brandeis University Next 4 lessons: Outline Scientific programming: best practices Classical learning (Hoepfield network) Probabilistic learning
Apache Thrift and Ruby
Apache Thrift and Ruby By Randy Abernethy In this article, excerpted from The Programmer s Guide to Apache Thrift, we will install Apache Thrift support for Ruby and build a simple Ruby RPC client and
CS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
1992-2010 by Pearson Education, Inc. All Rights Reserved.
Key benefit of object-oriented programming is that the software is more understandable better organized and easier to maintain, modify and debug Significant because perhaps as much as 80 percent of software
CIS 192: Lecture 13 Scientific Computing and Unit Testing
CIS 192: Lecture 13 Scientific Computing and Unit Testing Lili Dworkin University of Pennsylvania Scientific Computing I Python is really popular in the scientific and statistical computing world I Why?
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
CSCI 3136 Principles of Programming Languages
CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University Winter 2013 CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University
Master of Sciences in Informatics Engineering Programming Paradigms 2005/2006. Final Examination. January 24 th, 2006
Master of Sciences in Informatics Engineering Programming Paradigms 2005/2006 Final Examination January 24 th, 2006 NAME: Please read all instructions carefully before start answering. The exam will be
JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems
JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems Except where otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution Share Alike 3.0 United
Tutorial on Writing Modular Programs in Scala
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 13 September 2006 Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 1 of 45 Welcome to the
A Comparison of Programming Languages for Graphical User Interface Programming
University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange University of Tennessee Honors Thesis Projects University of Tennessee Honors Program 4-2002 A Comparison of Programming
Assignment 2: Option Pricing and the Black-Scholes formula The University of British Columbia Science One CS 2015-2016 Instructor: Michael Gelbart
Assignment 2: Option Pricing and the Black-Scholes formula The University of British Columbia Science One CS 2015-2016 Instructor: Michael Gelbart Overview Due Thursday, November 12th at 11:59pm Last updated
Parsing Technology and its role in Legacy Modernization. A Metaware White Paper
Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks
Ruby on Rails. a high-productivity web application framework. blog.curthibbs.us/ http://blog. Curt Hibbs <[email protected]>
Ruby on Rails a high-productivity web application framework http://blog blog.curthibbs.us/ Curt Hibbs Agenda What is Ruby? What is Rails? Live Demonstration (sort of ) Metrics for Production
Mrs: MapReduce for Scientific Computing in Python
Mrs: for Scientific Computing in Python Andrew McNabb, Jeff Lund, and Kevin Seppi Brigham Young University November 16, 2012 Large scale problems require parallel processing Communication in parallel processing
Introduction to Python
Caltech/LEAD Summer 2012 Computer Science Lecture 2: July 10, 2012 Introduction to Python The Python shell Outline Python as a calculator Arithmetic expressions Operator precedence Variables and assignment
Programming Using Python
Introduction to Computation and Programming Using Python Revised and Expanded Edition John V. Guttag The MIT Press Cambridge, Massachusetts London, England CONTENTS PREFACE xiii ACKNOWLEDGMENTS xv 1 GETTING
Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer
Software Engineering Best Practices Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer 2 3 4 Examples of Software Engineering Debt (just some of the most common LabVIEW development
Compilers. Introduction to Compilers. Lecture 1. Spring term. Mick O Donnell: [email protected] Alfonso Ortega: alfonso.ortega@uam.
Compilers Spring term Mick O Donnell: [email protected] Alfonso Ortega: [email protected] Lecture 1 to Compilers 1 Topic 1: What is a Compiler? 3 What is a Compiler? A compiler is a computer
PYTHON Basics http://hetland.org/writing/instant-hacking.html
CWCS Workshop May 2009 PYTHON Basics http://hetland.org/writing/instant-hacking.html Python is an easy to learn, modern, interpreted, object-oriented programming language. It was designed to be as simple
Scientific Programming in Python
UCSD March 9, 2009 What is Python? Python in a very high level (scripting) language which has gained widespread popularity in recent years. It is: What is Python? Python in a very high level (scripting)
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
JRuby Power on the JVM. Ola Bini JRuby Core Developer ThoughtWorks
JRuby Power on the JVM Ola Bini JRuby Core Developer ThoughtWorks Vanity slide Ola Bini From Stockholm, Sweden Programming language nerd (Lisp, Ruby, Java, Smalltalk, Io, Erlang, ML, C/C++, etc) JRuby
Art of Code Front-end Web Development Training Program
Art of Code Front-end Web Development Training Program Pre-work (5 weeks) Codecademy HTML5/CSS3 and JavaScript tracks HTML/CSS (7 hours): http://www.codecademy.com/en/tracks/web JavaScript (10 hours):
Rake Task Management Essentials
Rake Task Management Essentials Andrey Koleshko Chapter No. 8 "Testing Rake Tasks" In this package, you will find: A Biography of the author of the book A preview chapter from the book, Chapter NO.8 "Testing
D06 PROGRAMMING with JAVA. Ch3 Implementing Classes
Cicles Formatius de Grau Superior Desenvolupament d Aplicacions Informàtiques D06 PROGRAMMING with JAVA Ch3 Implementing Classes PowerPoint presentation, created by Angel A. Juan - ajuanp(@)gmail.com,
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
Pipe Cleaner Proteins. Essential question: How does the structure of proteins relate to their function in the cell?
Pipe Cleaner Proteins GPS: SB1 Students will analyze the nature of the relationships between structures and functions in living cells. Essential question: How does the structure of proteins relate to their
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Fact Extraction for Ruby on Rails Platform
Master Thesis Software Engineering Thesis no: MSE-2010-35 November 2010 Fact Extraction for Ruby on Rails Platform Software Architecture Visualization and Evaluation Nima Tshering School of Computing Blekinge
Acta Universitaria ISSN: 0188-6266 [email protected] Universidad de Guanajuato México
Acta Universitaria ISSN: 0188-6266 [email protected] Universidad de Guanajuato México Ramos-Díaz, J. Guadalupe; Navarro, Isela; Silva, Josep; Arroyo, Gustavo Defining DSL design principles for
Symbol Tables. Introduction
Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The
Pete Helgren [email protected]. Ruby On Rails on i
Pete Helgren [email protected] Ruby On Rails on i Value Added Software, Inc 801.581.1154 18027 Cougar Bluff San Antonio, TX 78258 www.valadd.com www.petesworkshop.com (c) copyright 2014 1 Agenda Primer on
McGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0
1.1 McGraw-Hill The McGraw-Hill Companies, Inc., 2000 Objectives: To describe the evolution of programming languages from machine language to high-level languages. To understand how a program in a high-level
PHP vs. Python vs. Ruby The web scripting language shootout
PHP vs. Python vs. Ruby The web scripting language shootout Klaus Purer Vienna University of Technology Institute of Computer Languages Compilers and Languages Group 185.307 Seminar aus Programmiersprachen,
CSCE 110 Programming I Basics of Python: Variables, Expressions, and Input/Output
CSCE 110 Programming Basics of Python: Variables, Expressions, and nput/output Dr. Tiffani L. Williams Department of Computer Science and Engineering Texas A&M University Fall 2011 Python Python was developed
1 Introduction. 2 An Interpreter. 2.1 Handling Source Code
1 Introduction The purpose of this assignment is to write an interpreter for a small subset of the Lisp programming language. The interpreter should be able to perform simple arithmetic and comparisons
Unit testing using Python nose
Unit testing using Python nose Luis Pedro Coelho On the web: http://luispedro.org On twitter: @luispedrocoelho European Molecular Biology Laboratory June 11, 2014 Luis Pedro Coelho ([email protected])
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies) Duration of Course: 6 Months Fees: Rs. 25,000/- (including Service Tax) Eligibility: B.E./B.Tech., M.Sc.(IT/ computer
Today's Topics. COMP 388/441: Human-Computer Interaction. simple 2D plotting. 1D techniques. Ancient plotting techniques. Data Visualization:
COMP 388/441: Human-Computer Interaction Today's Topics Overview of visualization techniques 1D charts, 2D plots, 3D+ techniques, maps A few guidelines for scientific visualization methods, guidelines,
Programming Languages CIS 443
Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception
GContracts Programming by Contract with Groovy. Andre Steingress
FÕ Ò ŃÔ PŎ ÑŇÒ P ÌM Œ PÑǾ PÒ PÕ Ñ Œ PŘÕ Ñ GContracts Programming by Contract with Groovy Andre Steingress Andre FÕ Ò ŃÔ PŎ ÑŇÒ P ÌM Œ PSteingress ÑǾ PÒ PÕ Ñ Œ PŘÕ Ñ Independent Software Dev @sternegross,
Data sharing in the Big Data era
www.bsc.es Data sharing in the Big Data era Anna Queralt and Toni Cortes Storage System Research Group Introduction What ignited our research Different data models: persistent vs. non persistent New storage
Ruby On Rails. CSCI 5449 Submitted by: Bhaskar Vaish
Ruby On Rails CSCI 5449 Submitted by: Bhaskar Vaish What is Ruby on Rails? Ruby on Rails is a web application framework written in Ruby, a dynamic programming language. Ruby on Rails uses the Model-View-Controller
Chapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
03 - Lexical Analysis
03 - Lexical Analysis First, let s see a simplified overview of the compilation process: source code file (sequence of char) Step 2: parsing (syntax analysis) arse Tree Step 1: scanning (lexical analysis)
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
Introduction to Software Paradigms & Procedural Programming Paradigm
Introduction & Procedural Programming Sample Courseware Introduction to Software Paradigms & Procedural Programming Paradigm This Lesson introduces main terminology to be used in the whole course. Thus,
Charles Dierbach. Wiley
Charles Dierbach Wiley Contents Preface Acknowledgments About the Author XXI xxv xxvii Introduction 1 MOTIVATION 2 FUNDAMENTALS 2 1.1 What Is Computer Science? 2 1.1.1 The Essence of Computational Problem
How To Develop Software
Software Development Basics Dr. Axel Kohlmeyer Associate Dean for Scientific Computing College of Science and Technology Temple University, Philadelphia http://sites.google.com/site/akohlmey/ [email protected]
Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011
Sequence Diagrams Massimo Felici What are Sequence Diagrams? Sequence Diagrams are interaction diagrams that detail how operations are carried out Interaction diagrams model important runtime interactions
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
Practical Essbase Web Services
Practical Essbase Web Services For Fun and Profit Jason Jones Jason Jones l Essbase l Programming l Mobile development l ODI l Blogging l Open source Agenda l Web services in a nutshell l Essbase connectivity
Server-Side Scripting and Web Development. By Susan L. Miertschin
Server-Side Scripting and Web Development By Susan L. Miertschin The OOP Development Approach OOP = Object Oriented Programming Large production projects are created by teams Each team works on a part
Computational Mathematics with Python
Boolean Arrays Classes Computational Mathematics with Python Basics Olivier Verdier and Claus Führer 2009-03-24 Olivier Verdier and Claus Führer Computational Mathematics with Python 2009-03-24 1 / 40
Crowdsourcing suggestions to programming problems for dynamic web development languages
Crowdsourcing suggestions to programming problems for dynamic web development languages Dhawal Mujumdar School of Information University of California, Berkeley 102 South Hall Berkeley, CA 94720 [email protected]
ANSA and μeta as a CAE Software Development Platform
ANSA and μeta as a CAE Software Development Platform Michael Giannakidis, Yianni Kolokythas BETA CAE Systems SA, Thessaloniki, Greece Overview What have we have done so far Current state Future direction
Web Development Frameworks
COMS E6125 Web-enHanced Information Management (WHIM) Web Development Frameworks Swapneel Sheth [email protected] @swapneel Spring 2012 1 Topic 1 History and Background of Web Application Development
Textual Modeling Languages
Textual Modeling Languages Slides 4-31 and 38-40 of this lecture are reused from the Model Engineering course at TU Vienna with the kind permission of Prof. Gerti Kappel (head of the Business Informatics
Ruby on Rails. Object Oriented Analysis & Design CSCI-5448 University of Colorado, Boulder. -Dheeraj Potlapally
Ruby on Rails Object Oriented Analysis & Design CSCI-5448 University of Colorado, Boulder -Dheeraj Potlapally INTRODUCTION Page 1 What is Ruby on Rails Ruby on Rails is a web application framework written
Efficiency Considerations of PERL and Python in Distributed Processing
Efficiency Considerations of PERL and Python in Distributed Processing Roger Eggen (presenter) Computer and Information Sciences University of North Florida Jacksonville, FL 32224 [email protected] 904.620.1326
Android Developer Fundamental 1
Android Developer Fundamental 1 I. Why Learn Android? Technology for life. Deep interaction with our daily life. Mobile, Simple & Practical. Biggest user base (see statistics) Open Source, Control & Flexibility
Software Visualization Tools for Component Reuse
Software Visualization Tools for Component Reuse Craig Anslow Stuart Marshall James Noble Robert Biddle 1 School of Mathematics, Statistics and Computer Science, Victoria University of Wellington, New
How To Program A Computer
Object Oriented Software Design Introduction Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 23, 2010 G. Lipari (Scuola Superiore Sant Anna) OOSD September 23, 2010
SimpleFSM - a domain-specific language for SIP communication systems - Part I: Language description
ELEKTROTEHNIŠKI VESTNIK 78(4): 223 228, 2011 ENGLISH EDITION SimpleFSM - a domain-specific language for SIP communication systems - Part I: Language description Edin Pjanić, Amer Hasanović Faculty of Electrical
Chapter 3.2 C++, Java, and Scripting Languages. The major programming languages used in game development.
Chapter 3.2 C++, Java, and Scripting Languages The major programming languages used in game development. C++ C used to be the most popular language for games Today, C++ is the language of choice for game
Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
Android Application Development Course Program
Android Application Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive data types, variables, basic operators,
Netbeans 6.0. José Maria Silveira Neto. Sun Campus Ambassador [email protected]
Netbeans 6.0 José Maria Silveira Neto Sun Campus Ambassador [email protected] Agenda What is Netbeans? What's in Netbeans 6.0? Coolest Features Netbeans 6.0 Demo! What To Do/Where To Go What Is NetBeans?
Part I Courses Syllabus
Part I Courses Syllabus This document provides detailed information about the basic courses of the MHPC first part activities. The list of courses is the following 1.1 Scientific Programming Environment
MEAP Edition Manning Early Access Program Nim in Action Version 1
MEAP Edition Manning Early Access Program Nim in Action Version 1 Copyright 2016 Manning Publications For more information on this and other Manning titles go to www.manning.com Welcome Thank you for purchasing
Introduction to the course, Eclipse and Python
As you arrive: 1. Start up your computer and plug it in. 2. Log into Angel and go to CSSE 120. Do the Attendance Widget the PIN is on the board. 3. Go to the Course Schedule web page. Open the Slides for
Adding Panoramas to Google Maps Using Ajax
Adding Panoramas to Google Maps Using Ajax Derek Bradley Department of Computer Science University of British Columbia Abstract This project is an implementation of an Ajax web application. AJAX is a new
Whitepapers at Amikelive.com
Brief Overview view on Web Scripting Languages A. Web Scripting Languages This document will review popular web scripting languages[1,2,12] by evaluating its history and current trends. Scripting languages
Introducing Tetra: An Educational Parallel Programming System
Introducing Tetra: An Educational Parallel Programming System, Jerome Mueller, Shehan Rajapakse, Daniel Easterling May 25, 2015 Motivation We are in a multicore world. Several calls for more parallel programming,
CloudLinux is a proven solution for shared hosting providers that:
CloudLinux Overview What is CloudLinux CloudLinux is a proven solution for shared hosting providers that: Improves server s stability and security Increases density Improves performance Decreases support
Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.
Web Frameworks web development done right Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.ssa Anna Corazza Outline 2 Web technologies evolution Web frameworks Design Principles
