Pla$orm independence and languages. CSCI 136: Fundamentals of Computer Science II Keith Vertanen
|
|
- Brian Chambers
- 5 years ago
- Views:
Transcription
1 Pla$orm independence and languages CSCI 136: Fundamentals of Computer Science II Keith Vertanen
2 Language types: Compiled e.g. C++ Overview Intermediate / bytecode e.g. Java,.NET Interpreted e.g. PHP, JavaScript Performance comparison 2
3 GeneraIng primes Problem: Compute all the primes up to N Prime # is only divisible by 1 and itself ANempt 1: Brute force Loop over all the numbers [2, N] For each #, check if anything evenly divides it... for (int i = 2; i <= N; i++) int j = 2; while ((j < i) && (i % j!= 0)) j++; if (j == i) System.out.printf("%d ", i);... PrimesNested.java
4 GeneraIng primes ANempt 2: Sieve of Eratosthenes
5 public class Primes public static void main(string [] args) final int N = Integer.parseInt(args[0]); boolean [] a = new boolean[n + 1]; for (int i = 0; i <= N; i++) a[i] = true; int top = (int) Math.sqrt((double) N); for (int i = 2; i <= top; i++) int j = 2 * i; while (j <= N) a[j] = false; j += i; for (int i = 2; i <= N; i++) if (a[i]) System.out.printf("%d ", i); System.out.printf("\n"); Primes.java 5
6 public class Primes public static void main(string [] args) final int N = Integer.parseInt(args[0]); boolean [] a = new boolean[n + 1]; for (int i = 0; i <= N; i++) a[i] = true; int top = (int) Math.sqrt((double) N); for (int i = 2; i <= top; i++) int j = 2 * i; while (j <= N) a[j] = false; j += i; for (int i = 2; i <= N; i++) if (a[i]) System.out.printf("%d ", i); System.out.printf("\n"); Primes.java #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char** argv) const int N = atoi(argv[1]); bool* a = new bool[n + 1]; for (int i = 0; i <= N; i++) a[i] = true; int top = (int) sqrt((double) N); for (int i = 2; i <= top; i++) int j = 2 * i; while (j <= n) a[j] = false; j += i; for (int i = 2; i <= N; i++) if (a[i]) printf("%d ", i); printf("\n"); delete [] a; return 0; Primes.cpp Maybe you've never seen C before, but you can read it! 6
7 NaIve compilaion C/C++ Write the code Press compile bunon Wait Fix compile errors Press compile bunon hnp://xkcd.com/303/ Compiled naive code loaded directly on CPU Code is specific to targeted architecture: Compile for Windows x86 Compile for Mac x86 7
8 Source code: Plain text file created in a high- level programming language #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char** argv) int n = atoi(argv[1]);... Primes.cpp Compile with GNU C++ compiler: c:\source\c\primes>g++ -O3 Primes.cpp -o Primes Machine language: Actual binary run by a paricular processor, not human readable/writeable Primes.exe c:\source\c\primes>primes Specific to the architecture targeted by compiler (e.g. x86) 8
9 Source code: Plain text file created in a high- level programming language Compile with Visual Studio: #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char** argv) int n = atoi(argv[1]);... Primes.cpp Primes.exe Somewhat different binary than GNU's output, but should work on same architecture. 9
10 Different targets in Visual Studio 10
11 Assembly language C Keil IDE Keil IDE Primes.asm Hex file Primes.c MRT: Loads machine code into code memory of 8051 board 8051 educafonal board 11
12 8051 assembly: IniIalizing an array ; Parameters to our ArrayInit subroutine ArrayNum EQU 30h ; Where our array starts ArrayMemStart EQU 31h ; 1st memory location in the array ArrayInitVal EQU 32h ; What value to load into array Start: MOV ArrayNum, #10 MOV ArrayMemStart, #40h MOV ArrayInitVal, #0ABh CALL ArrayInit JMP Start ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Init the memory in an array to a value, uses R0 and R1 ArrayInit: MOV R0, ArrayNum MOV R1, ArrayMemStart ArrayInitLoop: ArrayInitVal INC R1 DJNZ R0, ArrayInitLoop RET 12
13 Source code: Plain text file created in some editor (notepad, vi, TextEdit, Eclipse, DrJava, ) public class Primes public static void main(string [] args) int n = Integer.parseInt(args[0]);... Primes.java % javac Primes.java Java bytecode: Intermediate language that any device running Java can understand LineNumberTable main ([Ljava/lang/String;)V StackMapTable # SourceFile Primes.java * +, %d java/lang/object Primes.class c:\source\c\primes>java Primes This guy will run on anything with a Java Virtual Machine (JVM) 13
14 Source code (text) PlaTorm independent bytecode (binary) PlaTorm dependent virtual machine (binary executable) Target hardware 14
15 Other intermediate pla$orms Microsok.NET framework Write source in a variety of languages: C#, VB.NET, J#, F# Compile to Common Intermediate Language (CIL) Executed by Common Language RunIme (CLR) 15
16 16
17 using System; namespace Primes class Primes static void Main(string[] args) int n = Int32.Parse(args[0]); bool[] a = new bool[n + 1]; for (int i = 0; i <= n; i++) a[i] = true; int top = (int) Math.Sqrt((double) n); for (int i = 2; i <= top; i++) int j = 2 * i; while (j <= n) a[j] = false; j += i; public class Primes public static void main(string [] args) final int N = Integer.parseInt(args[0]); boolean [] a = new boolean[n + 1]; for (int i = 0; i <= N; i++) a[i] = true; int top = (int) Math.sqrt((double) N); for (int i = 2; i <= top; i++) int j = 2 * i; while (j <= N) a[j] = false; j += i; for (int i = 2; i <= n; i++) if (a[i]) System.Console.Write(i + " "); System.Console.WriteLine(); for (int i = 2; i <= N; i++) if (a[i]) System.out.printf("%d ", i); System.out.printf("\n"); Primes.cs Primes.java 17
18 Bytecode advantages Pla$orm independence Write once, run anywhere At anywhere someone has wrinen a virtual machine Possibly faster than pre- compiling??? Just In Time (JIT) compiler Security Can opimize bytecode to CPU it is running on Difficult to do this if you compile in advance You would have to deploy a version for every CPU variant Virtual Machine (VM) can verify code is behaving 18
19 Interpreted languages No compilaion step before running Each line compiled as encountered Originally some programming languages e.g. Smalltalk, BASIC Other scriping languages e.g. DOS batch files, bash scripts, PHP, JavaScript Now most uilize Just In Time (JIT) compilers Cache previously compiled lines of code Many languages thought of as "interpreted" now use bytecode approach e.g. Python, Perl, Ruby 19
20 <?php $n = $_GET["N"]; $a = array(); for ($i = 0; $i <= $n; $i++) $a[$i] = true; public class Primes public static void main(string [] args) final int N = Integer.parseInt(args[0]); boolean [] a = new boolean[n + 1]; for (int i = 0; i <= N; i++) a[i] = true; $top = intval(sqrt($n)); for ($i = 2; $i <= $top; $i++) $j = 2 * $i; while ($j <= $n) $a[$j] = false; $j += $i; for ($i = 2; $i <= $n; $i++) if ($a[$i]) echo "$i "; echo "<br />";?> Primes.php int top = (int) Math.sqrt((double) N); for (int i = 2; i <= top; i++) int j = 2 * i; while (j <= N) a[j] = false; j += i; for (int i = 2; i <= N; i++) if (a[i]) System.out.printf("%d ", i); System.out.printf("\n"); Primes.java 20
21 Benchmarks Find the primes up to 123,456,789 Using Sieve of Eratosthenes Repeated ten Imes Disabled console output for Iming Language Compiler Type Tower MacBook Pro ThinkPad x41 C++ Visual Studio 2010 compiled C++ GNU g++ compiled Java javac 1.6.0_26 bytecode C# Visual Studio 2010 bytecode C# Mono bytecode PHP (only to 12,345,678) 1 GB memory interpreted
22 Summary Deploying your program Compiled to naive code Compiled to byte code Before you deploy Just- in- Ime based on source Interpreted Benchmark results NaIve and intermediate byte code, similar Interpreted much slower 22
BASICS.
BASICS http://www.flickr.com/photos/oskay/472097903/ CSCI 135 - Fundamentals of Computer Science I 2 Outline Computer Basics Programs and Languages Introduction to the Eclipse IDE Our First Program Comments
More informationMEIN 50010: Python Introduction
: Python Fabian Sievers Higgins Lab, Conway Institute University College Dublin Wednesday, 2017-10-04 Outline Goals Teach basic programming concepts Apply these concepts using Python Use Python Packages
More informationProgramming the 8051/8052
Programming the 8051/8052 CSCI 255: Introduc/on to Embedded Systems Keith Vertanen Copyright 2011 Course outcomes (what you'll learn) ü Number systems ü binary, octal, decimal, hexadecimal How computers
More informationEclipse. JVM, main method and using Eclipse. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics
Eclipse JVM, main method and using Eclipse Produced by: Dr. Siobhán Drohan Department of Computing and Mathematics http://www.wit.ie/ Topics list Files in Java. Java Virtual Machine. main method. Eclipse
More informationGetting Started with Java. Atul Prakash
Getting Started with Java Atul Prakash Running Programs C++, Fortran, Pascal Python, PHP, Ruby, Perl Java is compiled into device-independent code and then interpreted Source code (.java) is compiled into
More informationAssumptions. History
Assumptions A Brief Introduction to Java for C++ Programmers: Part 1 ENGI 5895: Software Design Faculty of Engineering & Applied Science Memorial University of Newfoundland You already know C++ You understand
More informationCSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community
CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu History and Evolution of Programming Languages 1. Explain the relationship between machine
More informationJava and C II. CSE 351 Spring Instructor: Ruth Anderson
Java and C II CSE 351 Spring 2017 Instructor: Ruth Anderson Teaching Assistants: Dylan Johnson Kevin Bi Linxing Preston Jiang Cody Ohlsen Yufang Sun Joshua Curtis Administrivia Lab 5 Due TONIGHT! Fri 6/2
More informationBasic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable
Basic C++ Overview C++ is a version of the older C programming language. This is a language that is used for a wide variety of applications and which has a mature base of compilers and libraries. C++ is
More informationProgramming Language Basics
Programming Language Basics Lecture Outline & Notes Overview 1. History & Background 2. Basic Program structure a. How an operating system runs a program i. Machine code ii. OS- specific commands to setup
More informationWorking with Shell Scripting. Daniel Balagué
Working with Shell Scripting Daniel Balagué Editing Text Files We offer many text editors in the HPC cluster. Command-Line Interface (CLI) editors: vi / vim nano (very intuitive and easy to use if you
More informationChapter 11 Introduction to Programming in C
C: A High-Level Language Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University! Gives
More informationSKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)
SKILL AREA 304: Review Programming Language Concept Computer Programming (YPG) 304.1 Demonstrate an Understanding of Basic of Programming Language 304.1.1 Explain the purpose of computer program 304.1.2
More informationA NET Refresher
.NET Refresher.NET is the latest version of the component-based architecture that Microsoft has been developing for a number of years to support its applications and operating systems. As the name suggests,.net
More informationNotes of the course - Advanced Programming. Barbara Russo
Notes of the course - Advanced Programming Barbara Russo a.y. 2014-2015 Contents 1 Lecture 2 Lecture 2 - Compilation, Interpreting, and debugging........ 2 1.1 Compiling and interpreting...................
More informationIntroduction. Lecture 1 MIT 12043, Fundamentals of Programming By: S. Sabraz Nawaz
Introduction Lecture 1 MIT 12043, Fundamentals of Programming By: Programming Languages There are hundreds of programming languages. Very broadly these languages are categorized as o Low Level Languages
More informationMore Programming Languages. Spring 2014 Carola Wenk
More Programming Languages Spring 2014 Carola Wenk Web Scripting We ve seen how (relatively) easy it is to create a new language. This suggests that languages can actually be application-specific. Let
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University C: A High-Level Language! Gives
More informationLecture 03 Bits, Bytes and Data Types
Lecture 03 Bits, Bytes and Data Types Computer Languages A computer language is a language that is used to communicate with a machine. Like all languages, computer languages have syntax (form) and semantics
More informationPractical Malware Analysis
Practical Malware Analysis Ch 4: A Crash Course in x86 Disassembly Revised 1-16-7 Basic Techniques Basic static analysis Looks at malware from the outside Basic dynamic analysis Only shows you how the
More informationIntroduction. Introduction to OOP with Java. Lecture 01: Introduction to OOP with Java - AKF Sep AbuKhleiF -
Introduction to OOP with Java Instructor: AbuKhleif, Mohammad Noor Sep 2017 www.abukhleif.com Lecture 01: Introduction Instructor: AbuKhleif, Mohammad Noor Sep 2017 www.abukhleif.com AbuKhleiF - www.abukhleif.com
More informationC and C++ I. Spring 2014 Carola Wenk
C and C++ I Spring 2014 Carola Wenk Different Languages Python sum = 0 i = 1 while (i
More informationIntroduction to OOP with Java. Instructor: AbuKhleif, Mohammad Noor Sep 2017
Introduction to OOP with Java Instructor: AbuKhleif, Mohammad Noor Sep 2017 Lecture 01: Introduction Instructor: AbuKhleif, Mohammad Noor Sep 2017 Instructor AbuKhleif, Mohammad Noor Studied Computer Engineer
More informationCS251L REVIEW Derek Trumbo UNM
CS251L REVIEW 2010.8.25 Derek Trumbo UNM Java Applications Java application defined by a Java class with a main method public static void main(string[] args) args is an array of strings represented the
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified by Chris Wilcox, Yashwant Malaiya Colorado State University C: A High-Level Language
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C C: A High-Level Language Gives symbolic names to values don t need to know which register or memory location Provides abstraction of underlying hardware operations
More informationCrash Course in Java. Why Java? Java notes for C++ programmers. Network Programming in Java is very different than in C/C++
Crash Course in Java Netprog: Java Intro 1 Why Java? Network Programming in Java is very different than in C/C++ much more language support error handling no pointers! (garbage collection) Threads are
More informationLecture 1: Introduction to Java
Lecture 1: Introduction to Java 1 Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Without programs, a computer is an empty
More informationUnder the Hood: The Java Virtual Machine. Problem: Too Many Platforms! Compiling for Different Platforms. Compiling for Different Platforms
Compiling for Different Platforms Under the Hood: The Java Virtual Machine Program written in some high-level language (C, Fortran, ML, ) Compiled to intermediate form Optimized Code generated for various
More informationCS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG
CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG 1 Notice Class Website http://www.cs.umb.edu/~jane/cs114/ Reading Assignment Chapter 1: Introduction to Java Programming
More informationComputer Components. Software{ User Programs. Operating System. Hardware
Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point
More informationCS2141 Software Development using C/C++ C++ Basics
CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short
More informationTopic 8: Lazy Evaluation
Topic 8: Lazy Evaluation 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 17.1, 17.2, 17.4, 17.8, 17.23, 17.25, 17.28, 17.29 Readings: Chapter
More informationOutline. Parts 1 to 3 introduce and sketch out the ideas of OOP. Part 5 deals with these ideas in closer detail.
OOP in Java 1 Outline 1. Getting started, primitive data types and control structures 2. Classes and objects 3. Extending classes 4. Using some standard packages 5. OOP revisited Parts 1 to 3 introduce
More informationJCudaMP: OpenMP/Java on CUDA
JCudaMP: OpenMP/Java on CUDA Georg Dotzler, Ronald Veldema, Michael Klemm Programming Systems Group Martensstraße 3 91058 Erlangen Motivation Write once, run anywhere - Java Slogan created by Sun Microsystems
More informationBiostatistics 615 / 815
Hashing Biostatistics 615 / 815 Lecture 9 Scheduling Lectures on Hashing: October 6 & 8, 2008 Review session: October 14, 2008 Mid-term (in class): October 16, 2008 Last Lecture Merge Sort Bottom-Up Top-Down
More informationIntroduction to.net, C#, and Visual Studio. Part I. Administrivia. Administrivia. Course Structure. Final Project. Part II. What is.net?
Introduction to.net, C#, and Visual Studio C# Programming Part I Administrivia January 8 Administrivia Course Structure When: Wednesdays 10 11am (and a few Mondays as needed) Where: Moore 100B This lab
More informationCS263: Runtime Systems Lecture: High-level language virtual machines
CS263: Runtime Systems Lecture: High-level language virtual machines Today: A Review of Object-oriented features Chandra Krintz UCSB Computer Science Department Virtual machines (VMs) Terminology Aka managed
More informationCS 11 java track: lecture 1
CS 11 java track: lecture 1 Administrivia need a CS cluster account http://www.cs.caltech.edu/ cgi-bin/sysadmin/account_request.cgi need to know UNIX www.its.caltech.edu/its/facilities/labsclusters/ unix/unixtutorial.shtml
More informationCHAPTER 1 Introduction to Computers and Java
CHAPTER 1 Introduction to Computers and Java Copyright 2016 Pearson Education, Inc., Hoboken NJ Chapter Topics Chapter 1 discusses the following main topics: Why Program? Computer Systems: Hardware and
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C C: A High-Level Language Gives symbolic names to values don t need to know which register or memory location Provides abstraction of underlying hardware operations
More informationAn overview of Java, Data types and variables
An overview of Java, Data types and variables Lecture 2 from (UNIT IV) Prepared by Mrs. K.M. Sanghavi 1 2 Hello World // HelloWorld.java: Hello World program import java.lang.*; class HelloWorld { public
More informationRoadmap. Java: Assembly language: OS: Machine code: Computer system:
Roadmap C: car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Assembly language: Machine code: Computer system: get_mpg: pushq movq... popq ret %rbp %rsp, %rbp
More informationChapter 11 Introduction to Programming in C
C: A High-Level Language Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University Gives
More informationC Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006
C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30
More informationEMBEDDED SYSTEMS PROGRAMMING Language Basics
EMBEDDED SYSTEMS PROGRAMMING 2014-15 Language Basics (PROGRAMMING) LANGUAGES "The tower of Babel" by Pieter Bruegel the Elder Kunsthistorisches Museum, Vienna ABOUT THE LANGUAGES C (1972) Designed to replace
More informationObjectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java
Introduction Objectives An overview of object-oriented concepts. Programming and programming languages An introduction to Java 1-2 Problem Solving The purpose of writing a program is to solve a problem
More informationCOMP 215: INTRO TO PROGRAM DESIGN. Prof. Chris Jermaine Chris Prof. Chris Dr. Chris
COMP 215: INTRO TO PROGRAM DESIGN Prof. Chris Jermaine cmj4@cs.rice.edu Chris Prof. Chris Dr. Chris 1 This Class 50% of content: modern programming and program design The Java programming language will
More informationCSE 351. Introduction & Course Tools
CSE 351 Introduction & Course Tools Meet Your TA TA Name Interesting information examples: Where you are from Year in school Hobbies Unique talents Introductions Pick an interesting (but quick) ice breaker
More information#include <stdio.h> #include <math.h> int shownum(int digits[], int digitcount);
Problem 1: Programming in C [20 Points] Write a C program that takes as input a positive integer number and converts it to base 4. Some examples of input and output of this program are as follow: Example
More informationCS 177 Recitation. Week 1 Intro to Java
CS 177 Recitation Week 1 Intro to Java Questions? Computers Computers can do really complex stuff. How? By manipulating data according to lists of instructions. Fundamentally, this is all that a computer
More informationLesson 01 Introduction
Lesson 01 Introduction MIT 12043, Fundamentals of Programming By: S. Sabraz Nawaz Lecturer in Management & IT M.Sc. In IS (SLIIT), PGD in IS (SLIIT), BBA (Hons.) Spl. in IS (SEUSL), MCP Programs Computer
More informationTutorial 1 CSC 201. Java Programming Concepts عؾادئماظربجمةمبادؿكدامماجلاصا
Tutorial 1 CSC 201 Java Programming Concepts عؾادئماظربجمةمبادؿكدامماجلاصا م- م- م- م- م- Chapter 1 1. What is Java? 2. Why Learn Java? a. Java Is Platform Independent b. Java is Easy to learn 3. Programming
More informationFunctions & Memory Maps Review C Programming Language
Functions & Memory Maps Review C Programming Language Data Abstractions CSCI-2320 Dr. Tom Hicks Computer Science Department Constants c 2 What Is A Constant? Constant a Value that cannot be altered by
More informationComputer Components. Software{ User Programs. Operating System. Hardware
Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point
More informationSWEN-250 Personal SE. Introduction to C
SWEN-250 Personal SE Introduction to C A Bit of History Developed in the early to mid 70s Dennis Ritchie as a systems programming language. Adopted by Ken Thompson to write Unix on a the PDP-11. At the
More informationIntroduction Basic elements of Java
Software and Programming I Introduction Basic elements of Java Roman Kontchakov / Carsten Fuhs Birkbeck, University of London Module Information Time: Thursdays in the Spring term Lectures: MAL B04: 2
More informationPROGRAMMING FUNDAMENTALS
PROGRAMMING FUNDAMENTALS Q1. Name any two Object Oriented Programming languages? Q2. Why is java called a platform independent language? Q3. Elaborate the java Compilation process. Q4. Why do we write
More informationProgramming Language Concepts: Lecture 2
Programming Language Concepts: Lecture 2 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2011 PLC 2011, Lecture 2, 6 January 2011 Classes and
More informationCSE 1320 INTERMEDIATE PROGRAMMING - OVERVIEW AND DATA TYPES
CSE 1320 INTERMEDIATE PROGRAMMING - OVERVIEW AND DATA TYPES Mingon Kang The University of Texas at Arlington C History ANSI C, also known C89(ANSI X3.159-1989) and C90 (ISO/IEC 9899:1990) ANSI: American
More informationCS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007
CS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007 Course Web Site http://www.nps.navy.mil/cs/facultypages/squire/cs2900 All course related materials will be posted
More informationBaby Steps: Some Simple Programs in C, C++, and Java
Baby Steps: Some Simple Programs in C, C++, and Java Two Goals: To introduce the rudiments of OO vocabulary by showing the easily established conceptual parallels between C, C++, and Java programs. To
More informationFrom High Level to Machine Code. Compilation Overview. Computer Programs
From High Level to Algorithm/Model Java, C++, VB Compilation Execution Cycle Hardware 27 October 2007 Ariel Shamir 1 Compilation Overview Algorithm vs. Programs From Algorithm to Compilers vs. Interpreters
More informationAdvances in Programming Languages: Efficiency
Advances in Programming Languages: Efficiency Stephen Gilmore The University of Edinburgh March 1, 2007 Overview Computer programs should execute efficiently. The art and skill of computer programming
More informationGoals. Java - An Introduction. Java is Compiled and Interpreted. Architecture Neutral & Portable. Compiled Languages. Introduction to Java
Goals Understand the basics of Java. Introduction to Java Write simple Java Programs. 1 2 Java - An Introduction Java is Compiled and Interpreted Java - The programming language from Sun Microsystems Programmer
More informationChapter 1: Introduction to Computers and Programming
Chapter 1: Introduction to Computers and Programming 1.1 Why Program? Why Program? Computer programmable machine designed to follow instructions Program instructions in computer memory to make it do something
More informationC#.Net. Course Contents. Course contents VT BizTalk. No exam, but laborations
, 1 C#.Net VT 2009 Course Contents C# 6 hp approx. BizTalk 1,5 hp approx. No exam, but laborations Course contents Architecture Visual Studio Syntax Classes Forms Class Libraries Inheritance Other C# essentials
More informationJava: framework overview and in-the-small features
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer Java: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer
More informationLec 3. Compilers, Debugging, Hello World, and Variables
Lec 3 Compilers, Debugging, Hello World, and Variables Announcements First book reading due tonight at midnight Complete 80% of all activities to get 100% HW1 due Saturday at midnight Lab hours posted
More informationCOMP 2718: The OS, Shell, Terminal, and Text
COMP 2718: The OS, Shell, Terminal, and Text By: Dr. Andrew Vardy Adapted from the notes of Dr. Rod Byrne Outline What is an Operating System? The Shell and Terminal How are Characters Encoded? Standard
More informationComputer Systems Lecture 9
Computer Systems Lecture 9 CPU Registers in x86 CPU status flags EFLAG: The Flag register holds the CPU status flags The status flags are separate bits in EFLAG where information on important conditions
More informationC and Java some big differences
and some big differences Some August 30, 016 object-oriented vs procedural non-interpreted vs interpreted memory management references vs. free, unrestricted pointers error handling A Very Simple Program
More informationLearning objectives. The Java Environment. Java timeline (cont d) Java timeline. Understand the basic features of Java
Learning objectives The Java Environment Understand the basic features of Java What are portability and robustness? Understand the concepts of bytecode and interpreter What is the JVM? Learn few coding
More informationCS 231 Data Structures and Algorithms, Fall 2016
CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard
More informationCS 220: Introduction to Parallel Computing. Beginning C. Lecture 2
CS 220: Introduction to Parallel Computing Beginning C Lecture 2 Today s Schedule More C Background Differences: C vs Java/Python The C Compiler HW0 8/25/17 CS 220: Parallel Computing 2 Today s Schedule
More informationComputer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software.
Hardware and Software Computer Basics TOPICS Computer Organization Data Representation Program Execution Computer Languages Computer systems consist of hardware and software. Hardware includes the tangible
More informationCSCI565 Compiler Design
CSCI565 Compiler Design Spring 2011 Homework 4 Solution Due Date: April 6, 2011 in class Problem 1: Activation Records and Stack Layout [50 points] Consider the following C source program shown below.
More informationReview for Test 1 (Chapter 1-5)
Review for Test 1 (Chapter 1-5) 1. Introduction to Computers, Programs, and Java a) What is a computer? b) What is a computer program? c) A bit is a binary digit 0 or 1. A byte is a sequence of 8 bits.
More information! Learn how to think like a computer scientist. ! Learn problem solving. ! Read and write code. ! Understand object oriented programming
1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to Computing and Programming with Java: A Multimedia
More informationBASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I
BASIC COMPUTATION x public static void main(string [] args) Fundamentals of Computer Science I Outline Using Eclipse Data Types Variables Primitive and Class Data Types Expressions Declaration Assignment
More informationCS103 Lecture 1 Slides. Introduction Mark Redekopp
1 CS103 Lecture 1 Slides Introduction Mark Redekopp 2 What is Computer Science All science is computer science It is very interdisciplinary: Math, Engineering, Medicine, Natural sciences, Art, Linguistics,
More informationLecture 1 - Introduction (Class Notes)
Lecture 1 - Introduction (Class Notes) Outline: How does a computer work? Very brief! What is programming? The evolution of programming languages Generations of programming languages Compiled vs. Interpreted
More informationCOP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher
COP4020 ming Languages Compilers and Interpreters Robert van Engelen & Chris Lacher Overview Common compiler and interpreter configurations Virtual machines Integrated development environments Compiler
More informationLecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8
Today... Java basics S. Bowers 1 of 8 Java main method (cont.) In Java, main looks like this: public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); Q: How
More informationFinal CSE 131B Spring 2004
Login name Signature Name Student ID Final CSE 131B Spring 2004 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 (25 points) (24 points) (32 points) (24 points) (28 points) (26 points) (22 points)
More informationThe Computer System. Hardware = Physical Computer. Software = Computer Programs. People = End Users & Programmers. people
The Computer System Hardware = Physical Computer The equipment associated with a computer system. hardware software people The set of instructions that tell a computer what to do. Use the power of the
More informationCOMP-202: Foundations of Programming. Lecture 2: Java basics and our first Java program! Jackie Cheung, Winter 2016
COMP-202: Foundations of Programming Lecture 2: Java basics and our first Java program! Jackie Cheung, Winter 2016 Learn about cutting-edge research over lunch with cool profs January 18-22, 2015 11:30
More informationIntroduction to Java
Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn
More informationJava Language. Programs. Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs.
Introduction to Programming Java Language Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Programs are written using programming
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C C: A High-Level Language Gives symbolic names for containers of values don t need to know which register or memory location Provides abstraction of underlying
More informationCS 360 Programming Languages Interpreters
CS 360 Programming Languages Interpreters Implementing PLs Most of the course is learning fundamental concepts for using and understanding PLs. Syntax vs. semantics vs. idioms. Powerful constructs like
More informationSOFTWARE ARCHITECTURE 7. JAVA VIRTUAL MACHINE
1 SOFTWARE ARCHITECTURE 7. JAVA VIRTUAL MACHINE Tatsuya Hagino hagino@sfc.keio.ac.jp slides URL https://vu5.sfc.keio.ac.jp/sa/ Java Programming Language Java Introduced in 1995 Object-oriented programming
More informationIntroduction. CS 2210 Compiler Design Wonsun Ahn
Introduction CS 2210 Compiler Design Wonsun Ahn What is a Compiler? Compiler: A program that translates source code written in one language to a target code written in another language Source code: Input
More informationC - Basics, Bitwise Operator. Zhaoguo Wang
C - Basics, Bitwise Operator Zhaoguo Wang Java is the best language!!! NO! C is the best!!!! Languages C Java Python 1972 1995 2000 (2.0) Procedure Object oriented Procedure & object oriented Compiled
More informationJava language. Part 1. Java fundamentals. Yevhen Berkunskyi, NUoS
Java language Part 1. Java fundamentals Yevhen Berkunskyi, NUoS eugeny.berkunsky@gmail.com http://www.berkut.mk.ua What Java is? Programming language Platform: Hardware Software OS: Windows, Linux, Solaris,
More informationScientific Computing
Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course
More informationProgramming Language Concepts: Lecture 2
Programming Language Concepts: Lecture 2 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2009 PLC 2009, Lecture 2, 19 January 2009 Classes and
More informationIntro to Programming 2017
Intro to Programming 2017 Presentation: http://bit.ly/2wdxwjr COMP ARCH BACKGROUND How does a computer function? How does a programming language interact with a computer? What are you telling the hardware
More informationFundamentals of Programming. By Budditha Hettige
Fundamentals of Programming By Budditha Hettige Overview Exercises (Previous Lesson) The JAVA Programming Languages Java Virtual Machine Characteristics What is a class? JAVA Standards JAVA Keywords How
More informationCompilation I. Hwansoo Han
Compilation I Hwansoo Han Language Groups Imperative von Neumann (Fortran, Pascal, Basic, C) Object-oriented (Smalltalk, Eiffel, C++) Scripting languages (Perl, Python, JavaScript, PHP) Declarative Functional
More information