Informatik II (D-ITET)
|
|
- Natalie Mosley
- 6 years ago
- Views:
Transcription
1 Informatik II (D-ITET) Distributed Systems Group, ETH Zürich Informatik II (D-ITET) 1
2 Outlook Exercise 3: solution discussion Exercise 4: overview (Stack, Ackermann, Bytecode) Informatik II (D-ITET) 2
3 Solution Ex3.Q1 Difference between String StringBuffer Task: NO Garbage-Collector" Objects remain in memory! Debugger displays only the defined references Function call: addstring(s1, s2) The references s1 and s2 are only defined within addstring The s1 and s2 objects are still in memory (no Garbage Collection!) Informatik II (D-ITET) 3
4 Difference (String/String literal) What is the difference (left and right)? String str = new String( abc ); String str = abc ; First box: A new string object is created. Second box: String literal the string can be interned (method of storing only one copy of each distinct string value) String a = "abc"; String b = "abc"; System.out.println(a == b); First box <<True>> String c = new String("abc"); String d = new String("abc"); System.out.println(c == d); Second Box <<False>> String s1 = "abc"; String s2 = new String("abc"); String s3 = "abc"; (s1 == s2) (s1 == s3) (s1.equals(s2)) false true true Informatik II (D-ITET) 4
5 Solution Ex3.Q1 void addstring(string s1, String s2){ s1 = s1 + s2; // MARKIERUNG 3 } public static void main(string[] args) { } StringObject ref = new StringObject(); String mystring = "Give "; StringBuffer mybuffer = new StringBuffer("Give "); // MARKIERUNG 1 mystring = mystring + "me six "; mybuffer.append("me six "); // MARKIERUNG 2 ref.addstring(mystring, "lines"); mybuffer.append("lines"); // MARKIERUNG 4 Informatik II (D-ITET) 5
6 Solution Ex3.Q1 Markierung 1 public static void main(string[] args) { StringObject ref = new StringObject(); String mystring = "Give "; StringBuffer mybuffer = new StringBuffer("Give "); (0, StringObject, -) (ref, 0) (1, String, Give ) (mystring, 1) (2, StringBuffer, Give ) (mybuffer, 2) Each string literal is a reference to an instance of class String. ( ) Literal strings within the same class in the same package represent references to the same String object. [Java Language Reference Abschnitt ] Informatik II (D-ITET) 6
7 Solution Ex3.Q1 Markierung 2 mystring = mystring + "me six "; mybuffer.append("me six "); (0, StringObject, -) (ref, 0) (1, String, Give ) (mystring, 4) (2, StringBuffer, Give me six ) (mybuffer, 2) (3, String, me six ) (4, String, Give me six ) Common Mistake! Informatik II (D-ITET) 7
8 Solution Ex3.Q1 Markierung 3 ref.addstring(mystring, "lines"); void addstring(string s1, String s2){ s1 = s1 + s2; } (0, StringObject, -) (ref, 0) (1, String, Give ) (mystring, 4) (2, StringBuffer, Give me six ) (mybuffer, 2) (3, String, me six ) (s1, 6) (s2, 5) (4, String, Give me six ) (5, String, lines ) (6, String, Give me six lines ) Informatik II (D-ITET) 8
9 Solution U3.A1 Markierung 4 mybuffer.append("lines"); (0, StringObject, -) (ref, 0) (1, String, Give ) (mystring, 4) (2, StringBuffer, Give me six lines ) (mybuffer, 2) (3, String, me six ) (4, String, Give me six ) S1 and S2 local variables no longer exist! (5, String, lines ) (6, String, Give me six lines ) Informatik II (D-ITET) 9
10 Solution Ex3.Q2 Syntax Analysis Var: Clause: ~ ( Var ). OR Expr: Let us do them togather! Clause AND Clause Informatik II (D-ITET) 10
11 Solution Ex3.Q3 Syntax Diagram Tree Subtree Successor Tree, Subtree Node ( Successor ) Node A B Z Informatik II (D-ITET) 11
12 Solution Ex3.Q3 Syntax Checker parseemptyorsubtree() parsechildren() Tree Subtree Successor Tree, parsesubtree() parsenode() Subtree Node ( Successor ) Node A B Idea: int parsexy(kd, pos) Parse XY at Position pos in String kd Return value: Position in String after processing XY If the string kd is not correct, a ParseException is thrown during execution Z Informatik II (D-ITET) 12
13 Solution Ex3.Q3 Class LKD public class KD { // string parsing public static void parse(string kd) throws ParseException; } // parse helpers (entity parsing) private static int parseemptyorsubtree(string kd, int position) throws ParseException; private static int parsesubtree(string kd, int position) throws ParseException; private static int parsechildren(string kd, int position) throws ParseException; private static int parsenode(string kd, int position) throws ParseException; // atomic helpers (single character parsing) private static boolean ischarat(string kd,int position,char expected); private static int parsechar(string kd,int position,char expected) throws ParseException; Informatik II (D-ITET) 13
14 KD.parse(String) Parse a KlammerDarstellung" (KD) tree An empty tree is coded as - A node is coded with a capital character: A,B,C,. Successors following a father are separated by, in a bracket: V(C1,C2) Empty subtree leave at the end of the list of successors Omit empty list public static void parse( String kd ) throws ParseException { int position = parseemptyorsubtree( kd, 0 ); if( position!= kd.length() ) { throw new ParseException( "expected end of string", position ); } } Informatik II (D-ITET) 14
15 KD.parseChar() & KD.isCharAt() boolean ischarat( String kd, int position, char expected ) { return ( position < kd.length() ) && ( kd.charat( position ) == expected ); } int parsechar( String kd, int position, char expected ) throws ParseException { if(!ischarat( kd, position, expected ) ) throw new ParseException( "expected character " + expected, position ); } return position + 1; Informatik II (D-ITET) 15
16 KD.parseEmptyOrSubTree(String) parseemptyorsubtree() Tree Subtree int parseemptyorsubtree( String kd, int position ) throws ParseException { if( ischarat( kd, position, - ) ) return parsechar( kd, position, - ); } return parsesubtree( kd, position ); Informatik II (D-ITET) 16
17 KD.parseSubTree() parsesubtree() Subtree Node ( Successor ) int parsesubtree( String kd, int position ) throws ParseException { position = parsenode( kd, position ); if( ischarat( kd, position, ( ) ){ position = parsechar( kd, position, ( ); position = parsechildren( kd, position); position = parsechar( kd, position, ) ); } } return position; Informatik II (D-ITET) 17
18 KD.parseChildren() parsechildren() Successor Tree, int parsechildren(string kd, int position) throws ParseException { for( position = parseemptyorsubtree( kd, position ); ischarat( lkd, position,, ); position = parseemptyorsubtree( kd, position ) ) { position = parsechar( kd, position,, ); } } return position; Informatik II (D-ITET) 18
19 KD.parseNode() parsenode() Node A B Z int parsenode( String kd, int position ) throws ParseException { if( position >= kd.length() ) throw new ParseException( "expected a node", position ); char ch = kd.charat( position ); if(!character.isuppercase( ch ) ) throw new ParseException( "invalid character " + ch, position ); } return position + 1; Informatik II (D-ITET) 19
20 Outlook Exercise 3 solution discussion Exercise 4 overview (Stack, Ackermann, Bytecode) Informatik II (D-ITET) 20
21 Excersie 4 1. Stack Possible implementation using arrays Interface is known but what happens in the background (depends on the programmer). We make a better implementation with lists later! 2. Ackermann exploding recursion... :-) How much is (4, 2)? 3. Java Bytecode Finally we will have a look at low-level stuff J Informatik II (D-ITET) 21
22 Hints Ex4.Q1 - Stack Data structure Only the last element is accessed last-in-first-out queue (LIFO queue) Informatik II (D-ITET) 22
23 Exercise 4 - Q1 (a-c) Constructor Initializes internal Array Capacity is an argument to the constructor tostring() with StringBuffer Expected Output: "[e0, e1, e2, ]" Concatenation String: str += "bar"; StringBuffer: buf.append("bar"); grow() Capacity doubled, copy old values Informatik II (D-ITET) 23
24 Exercise 4 - Q1 (d) push(), pop(), peek(), empty() Standard stack functions Arguments are of type int If necessary, call grow() size() Number of elements currently on the stack capacity() Total number of elements which fit on the current stack until the next grow Informatik II (D-ITET) 24
25 Exercise 4 Ackermann Function Q2 Recursive Definition Grows extremely fast A(3,3) = 61 A(4, 2) has already decimal places!! Wilhelm Ackermann ( , Deutchland) Why is this function useful? à Theoretical computer science: example of a function that is computable but not primitive recursive is a famous example for an incredibly fast rising function, and we will use it to investigate how Java internally handles recursion. Informatik II (D-ITET) 25
26 Exercise 4 Q2 You should calculate A(n,m)... First, calculate A(2,1) by hand on paper Write down all steps then (b) gets easier... A(2,1) = A(1+1,0+1) = A(1,A(2,0))... Then, write the Pseudocode «Descriptive», but in the form of programming language Think about Stacks... :-) The function has the property that one can not say in advance how deep the recursion is à use while instead of for-loop! Implement using the stack implementation in Question 1 with an iterative algorithm Informatik II (D-ITET) 26
27 Exercise 4 - Iterative Approach Q2c Ackermann s formula always requires (exactly) two values: The currently required values should be at the top of the stack What does it mean when there is one item left in the stack? Stack stack = new Stack(); stack.push(4); stack.push(7); while(stack.size()!=1) {... } 7 4 stack Informatik II (D-ITET) 27
28 Exercise 4 Implementation Q2c stack.push(m) stack.push(n) m n stack m = stack.pop() n = stack.pop() if n == 0 à result = m+1 else if m == 0 à push(n-1), push(1) else push(n-1), push(n), push(m-1) Informatik II (D-ITET) 28
29 Exercise 4 Implementation Q2c Stack Use the stack implementation in Q1 The interface should NOT be modified Snapshots With tostring() method of the stack What if I can not do Q1? Use java.util.stack<integer> you just need push(), pop(), size und tostring() If necessary: send me an Informatik II (D-ITET) 29
30 Exercise 4 Java Bytecode Q3 Informatik II (D-ITET) 30
31 Informatik II (D-ITET) 31
32 Informatik II (D-ITET) 32
33 Exercise 4 Java Bytecode Q3 Method int f(int, int, int) 0 iload_0 1 iload_1 2 iadd 3 iload_2 4 idiv 5 ireturn Method int g(int, int) 0 iload_0 1 iload_1 2 iconst_3 3 invokestatic #f 6 ireturn Informatik II (D-ITET) 33
34 Exercise 4 Java Bytecode Q3 Method int f(int, int, int) 0 iload_0 a 0 1 iload_1 a 1 2 iadd a 0 + a 1 3 iload_2 a 2 4 idiv (a 0 + a 1 ) / a 2 5 ireturn Informatik II (D-ITET) 34
35 Demo: Bytecode and Strings/Stringbuffer Warum genau sind Strings so viel langsamer beim append? withstrings (nur Schleife) 1. create new Stringbuffer 2. append String value to Stringbuffer 3. append current i to Stringbuffer 4. call.tostring on Stringbuffer withstringbuffer (nur Schleife) 1. append current i to Stringbuffer Informatik II (D-ITET) 35
36 Demo: Bytecode and Strings/Stringbuffer D:\Projects\DisassemblerDemo> javac JavaTip.java //compiler java JavaTip //run javap c private JavaTip //disassembler Common mistake: javap is not recognized as an internal or external command, operable program or batch file Reason: java binaries are not defined in System variable PATH Solution: Right Click on Computer à Properties à Advanced System Settings à Environment Variables à PATH à add (where you installed the Java JDK) and restart Windows C:\Program Files\Java\jdk1.7.0_31\bin Informatik II (D-ITET) 36
37 Have Fun! Informatik II (D-ITET) 37
Informatik II (D-ITET)
Informatik II (D-ITET) hithnawi@inf.ethz.ch Distributed Systems Group, ETH Zürich Informatik II (D-ITET) 1 Outlook Exercise 3: solution discussion Exercise 4: overview (Stack, Ackermann, Bytecode) Informatik
More informationCompiler construction 2009
Compiler construction 2009 Lecture 2 Code generation 1: Generating Jasmin code JVM and Java bytecode Jasmin Naive code generation The Java Virtual Machine Data types Primitive types, including integer
More informationAssignment 5. Introduction
Assignment 5 Introduction The objectives of this assignment are to exercise a few advanced object oriented programming and basic data structures concepts. The first mini-goal is to understand that objects
More informationInformatik II (D-ITET) Tutorial 6
Informatik II (D-ITET) Tutorial 6 TA: Marian George, E-mail: marian.george@inf.ethz.ch Distributed Systems Group, ETH Zürich Exercise Sheet 5: Solutions and Remarks Variables & Methods beginwithlowercase,
More information1 Epic Test Review 2 Epic Test Review 3 Epic Test Review 4. Epic Test Review 5 Epic Test Review 6 Epic Test Review 7 Epic Test Review 8
Epic Test Review 1 Epic Test Review 2 Epic Test Review 3 Epic Test Review 4 Write a line of code that outputs the phase Hello World to the console without creating a new line character. System.out.print(
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationSelected Questions from by Nageshwara Rao
Selected Questions from http://way2java.com by Nageshwara Rao Swaminathan J Amrita University swaminathanj@am.amrita.edu November 24, 2016 Swaminathan J (Amrita University) way2java.com (Nageshwara Rao)
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 informationJava Bytecode (binary file)
Java is Compiled Unlike Python, which is an interpreted langauge, Java code is compiled. In Java, a compiler reads in a Java source file (the code that we write), and it translates that code into bytecode.
More informationCompiling Techniques
Lecture 10: Introduction to 10 November 2015 Coursework: Block and Procedure Table of contents Introduction 1 Introduction Overview Java Virtual Machine Frames and Function Call 2 JVM Types and Mnemonics
More informationStacks. stacks of dishes or trays in a cafeteria. Last In First Out discipline (LIFO)
Outline stacks stack ADT method signatures array stack implementation linked stack implementation stack applications infix, prefix, and postfix expressions 1 Stacks stacks of dishes or trays in a cafeteria
More informationGetting started with Java
Getting started with Java by Vlad Costel Ungureanu for Learn Stuff Programming Languages A programming language is a formal constructed language designed to communicate instructions to a machine, particularly
More informationParsing 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 informationData Abstraction and Specification of ADTs
CITS2200 Data Structures and Algorithms Topic 4 Data Abstraction and Specification of ADTs Example The Reversal Problem and a non-adt solution Data abstraction Specifying ADTs Interfaces javadoc documentation
More informationMID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct.
MID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct. In linked list the elements are necessarily to be contiguous In linked list the elements may locate at far positions
More informationComputer Programming, I. Laboratory Manual. Final Exam Solution
Think Twice Code Once The Islamic University of Gaza Engineering Faculty Department of Computer Engineering Fall 2017 ECOM 2005 Khaleel I. Shaheen Computer Programming, I Laboratory Manual Final Exam Solution
More informationAssignment 4 Publication date: 27/12/2015 Submission date: 17/01/ :59 People in-charge: R. Mairon and Y. Twitto
Assignment 4 Publication date: 27/12/2015 Submission date: 17/01/2016 23:59 People in-charge: R. Mairon and Y. Twitto Introduction The objectives of this assignment are to exercise a few advanced object
More informationPostfix Notation is a notation in which the operator follows its operands in the expression (e.g ).
Assignment 5 Introduction For this assignment, you will write classes to evaluate arithmetic expressions represented as text. For example, the string "1 2 ( * 4)" would evaluate to 15. This process will
More informationPace University. Fundamental Concepts of CS121 1
Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction
More information- Thus there is a String class (a large class)
Strings - Strings in Java are objects - Thus there is a String class (a large class) - In a statement like this: System.out.println( Hello World ); the Java compiler creates a String object from the quoted
More informationJoeq Analysis Framework. CS 243, Winter
Joeq Analysis Framework CS 243, Winter 2009-2010 Joeq Background Compiler backend for analyzing and optimizing Java bytecode Developed by John Whaley and others Implemented in Java Research project infrastructure:
More informationIT 4043 Data Structures and Algorithms. Budditha Hettige Department of Computer Science
IT 4043 Data Structures and Algorithms Budditha Hettige Department of Computer Science 1 Syllabus Introduction to DSA Abstract Data Types List Operation Using Arrays Stacks Queues Recursion Link List Sorting
More informationInformatik II. Tutorial 6. Mihai Bâce Mihai Bâce. April 5,
Informatik II Tutorial 6 Mihai Bâce mihai.bace@inf.ethz.ch 05.04.2017 Mihai Bâce April 5, 2017 1 Overview Debriefing Exercise 5 Briefing Exercise 6 Mihai Bâce April 5, 2017 2 U05 Some Hints Variables &
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 informationJava Programming. Atul Prakash
Java Programming Atul Prakash Java Language Fundamentals The language syntax is similar to C/ C++ If you know C/C++, you will have no trouble understanding Java s syntax If you don't, it will be easier
More informationAns: Store s as an expandable array of chars. (Double its size whenever we run out of space.) Cast the final array to a String.
CMSC 131: Chapter 21 (Supplement) Miscellany Miscellany Today we discuss a number of unrelated but useful topics that have just not fit into earlier lectures. These include: StringBuffer: A handy class
More information3. Convert 2E from hexadecimal to decimal. 4. Convert from binary to hexadecimal
APCS A Midterm Review You will have a copy of the one page Java Quick Reference sheet. This is the same reference that will be available to you when you take the AP Computer Science exam. 1. n bits can
More informationIndex COPYRIGHTED MATERIAL
Index COPYRIGHTED MATERIAL Note to the Reader: Throughout this index boldfaced page numbers indicate primary discussions of a topic. Italicized page numbers indicate illustrations. A abstract classes
More informationFun facts about recursion
Outline examples of recursion principles of recursion review: recursive linked list methods binary search more examples of recursion problem solving using recursion 1 Fun facts about recursion every loop
More informationCosc 241 Programming and Problem Solving Lecture 9 (26/3/18) Collections and ADTs
1 Cosc 241 Programming and Problem Solving Lecture 9 (26/3/18) Collections and ADTs Michael Albert michael.albert@cs.otago.ac.nz Keywords: abstract data type, collection, generic class type, stack 2 Collections
More informationWES-CS GROUP MEETING #9
WES-CS GROUP MEETING #9 Exercise 1: Practice Multiple-Choice Questions 1. What is output when the following code executes? String S1 = new String("hello"); String S2 = S1 +! ; S1 = S1 + S1; System.out.println(S1);
More informationAn Introduction to Trees
An Introduction to Trees Alice E. Fischer Spring 2017 Alice E. Fischer An Introduction to Trees... 1/34 Spring 2017 1 / 34 Outline 1 Trees the Abstraction Definitions 2 Expression Trees 3 Binary Search
More informationCSE 143 SAMPLE MIDTERM
CSE 143 SAMPLE MIDTERM 1. (5 points) In some methods, you wrote code to check if a certain precondition was held. If the precondition did not hold, then you threw an exception. This leads to robust code
More informationCS24 Week 4 Lecture 2
CS24 Week 4 Lecture 2 Kyle Dewey Overview Linked Lists Stacks Queues Linked Lists Linked Lists Idea: have each chunk (called a node) keep track of both a list element and another chunk Need to keep track
More informationJava Identifiers, Data Types & Variables
Java Identifiers, Data Types & Variables 1. Java Identifiers: Identifiers are name given to a class, variable or a method. public class TestingShastra { //TestingShastra is an identifier for class char
More informationInitializers: Array initializers can be used with class base types as well. The elements of the initializer can be expressions (not just constants).
CMSC 131: Chapter 15 (Supplement) Arrays II Arrays of Objects Array of Objects: The base type of an array can be a class object. Example: Array of Strings. String[ ] greatcities = new String[5]; greatcities[2]
More informationJVM. What This Topic is About. Course Overview. Recap: Interpretive Compilers. Abstract Machines. Abstract Machines. Class Files and Class File Format
Course Overview What This Topic is About PART I: overview material 1 Introduction 2 Language processors (tombstone diagrams, bootstrapping) 3 Architecture of a compiler PART II: inside a compiler 4 Syntax
More information1.00 Lecture 26. Data Structures: Introduction Stacks. Reading for next time: Big Java: Data Structures
1.00 Lecture 26 Data Structures: Introduction Stacks Reading for next time: Big Java: 19.1-19.3 Data Structures Set of primitives used in algorithms, simulations, operating systems, applications to: Store
More informationA First Look At Java. Didactic Module 13 Programming Languages - EEL670 1
A First Look At Java Didactic Module 13 Programming Languages - EEL670 1 Outline Thinking about objects Simple expressions and statements Class definitions About references and pointers Getting started
More informationObject Oriented Programming
Object Oriented Programming Objectives To review the concepts and terminology of object-oriented programming To discuss some features of objectoriented design 1-2 Review: Objects In Java and other Object-Oriented
More informationInformatik II (D-ITET) Tutorial 6. TA: Anwar Hithnawi, Distributed Systems Group, ETH Zürich
Informatik II (D-ITET) Tutorial 6 TA: Anwar Hithnawi, E-mail: hithnawi@inf.ethz.ch Distributed Systems Group, ETH Zürich Outlook Exercise 5: Solution discussion More Java insights (Inheritance and Interfaces)
More informationCOMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette
COMP 250: Java Programming I Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette Variables and types [Downey Ch 2] Variable: temporary storage location in memory.
More informationInformatik II Tutorial 6. Subho Shankar Basu
Informatik II Tutorial 6 Subho Shankar Basu subho.basu@inf.ethz.ch 06.04.2017 Overview Debriefing Exercise 5 Briefing Exercise 6 2 U05 Some Hints Variables & Methods beginwithlowercase, areverydescriptiveand
More informationExercise 7 Bytecode Verification self-study exercise sheet
Concepts of ObjectOriented Programming AS 2018 Exercise 7 Bytecode Verification selfstudy exercise sheet NOTE: There will not be a regular exercise session on 9th of November, because you will take the
More informationdata_type variable_name = value; Here value is optional because in java, you can declare the variable first and then later assign the value to it.
Introduction to JAVA JAVA is a programming language which is used in Android App Development. It is class based and object oriented programming whose syntax is influenced by C++. The primary goals of JAVA
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 informationJoeQ Framework CS243, Winter 20156
Overview Java Intermediate representation JoeQ Framework CS243, Winter 20156 Bytecode JoeQ Framework Quads: Instruction set used in JoeQ JoeQ constructs Writing analysis in JoeQ HW 2 Typical Compiler Infrastructure
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 informationStacks (5.1) Abstract Data Types (ADTs) CSE 2011 Winter 2011
Stacks (5.1) CSE 2011 Winter 2011 26 January 2011 1 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations on the data Error
More informationCSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013
CSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013 Name: This exam consists of 6 problems on the following 6 pages. You may use your two-sided hand-written 8 ½ x 11 note sheet during the exam.
More informationBrief Summary of Java
Brief Summary of Java Java programs are compiled into an intermediate format, known as bytecode, and then run through an interpreter that executes in a Java Virtual Machine (JVM). The basic syntax of Java
More informationIntroduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview
Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple
More informationWeiss Chapter 1 terminology (parenthesized numbers are page numbers)
Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement
More informationRecap: Printing Trees into Bytecodes
Recap: Printing Trees into Bytecodes To evaluate e 1 *e 2 interpreter evaluates e 1 evaluates e 2 combines the result using * Compiler for e 1 *e 2 emits: code for e 1 that leaves result on the stack,
More informationCSC 222: Computer Programming II. Spring 2005
CSC 222: Computer Programming II Spring 2005 Stacks and recursion stack ADT push, pop, peek, empty, size ArrayList-based implementation, java.util.stack application: parenthesis/delimiter matching postfix
More informationFall CS 101: Test 2 Name UVA ID. Grading. Page 1 / 4. Page3 / 20. Page 4 / 13. Page 5 / 10. Page 6 / 26. Page 7 / 17.
Grading Page 1 / 4 Page3 / 20 Page 4 / 13 Page 5 / 10 Page 6 / 26 Page 7 / 17 Page 8 / 10 Total / 100 1. (4 points) What is your course section? CS 101 CS 101E Pledged Page 1 of 8 Pledged The following
More informationCOMP3131/9102: Programming Languages and Compilers
COMP3131/9102: Programming Languages and Compilers Jingling Xue School of Computer Science and Engineering The University of New South Wales Sydney, NSW 2052, Australia http://www.cse.unsw.edu.au/~cs3131
More informationinfix expressions (review)
Outline infix, prefix, and postfix expressions queues queue interface queue applications queue implementation: array queue queue implementation: linked queue application of queues and stacks: data structure
More informationStack Implementation
Stack Implementation (In Java Using BlueJ) What is BlueJ? BlueJ is a Java integrated development environment (IDE) which has been designed specifically for learning object oriented programming in Java.
More informationStacks. Access to other items in the stack is not allowed A LIFO (Last In First Out) data structure
CMPT 225 Stacks Stacks A stack is a data structure that only allows items to be inserted and removed at one end We call this end the top of the stack The other end is called the bottom Access to other
More informationOhad Barzilay and Oranit Dror
The String Class Represents a character string (e.g. "Hi") Implicit constructor: String quote = "Hello World"; string literal All string literals are String instances Object has a tostring() method More
More informationCS1622. Semantic Analysis. The Compiler So Far. Lecture 15 Semantic Analysis. How to build symbol tables How to use them to find
CS1622 Lecture 15 Semantic Analysis CS 1622 Lecture 15 1 Semantic Analysis How to build symbol tables How to use them to find multiply-declared and undeclared variables. How to perform type checking CS
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Abstract Data Type Stack Version of February 2, 2013 Abstract These lecture notes are meant
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 informationSTRUCTURING OF PROGRAM
Unit III MULTIPLE CHOICE QUESTIONS 1. Which of the following is the functionality of Data Abstraction? (a) Reduce Complexity (c) Parallelism Unit III 3.1 (b) Binds together code and data (d) None of the
More informationMODULE 02: BASIC COMPUTATION IN JAVA
MODULE 02: BASIC COMPUTATION IN JAVA Outline Variables Naming Conventions Data Types Primitive Data Types Review: int, double New: boolean, char The String Class Type Conversion Expressions Assignment
More informationProgramming Basics. Digital Urban Visualization. People as Flows. ia
Programming Basics Digital Urban Visualization. People as Flows. 28.09.2015 ia zuend@arch.ethz.ch treyer@arch.ethz.ch Programming? Programming is the interaction between the programmer and the computer.
More informationLecture 16. Lecture
Recursive lists D0010E Variants of lists Doubly linked lists Binary trees Circular lists - Håkan Jonsson 1 - Håkan Jonsson 2 - Håkan Jonsson 3 1 1. Circular lists A singly linked list has a beginning and
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 informationImproving Java Performance
Improving Java Performance #perfmatters Raimon Ràfols ...or the mumbo-jumbo behind the java compiler Agenda - Disclaimer - Who am I? - Our friend the java compiler - Language additions & things to consider
More informationStatic Program Analysis
Static Program Analysis Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ws-1617/spa/ Recap: Taking Conditional Branches into Account Extending
More informationMIDTERM EXAMINATION Spring 2010 CS301- Data Structures
MIDTERM EXAMINATION Spring 2010 CS301- Data Structures Question No: 1 Which one of the following statement is NOT correct. In linked list the elements are necessarily to be contiguous In linked list the
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 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 informationCMSC131 Final Exam Practice Questions
CMSC131 Final Exam Practice Questions Disclaimer: The following are questions that try to provide you with some practice material for the final exam. By no means do they represent the only material you
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Abstract Data Type Stack Version of February 2, 2013 Abstract These lecture notes are meant
More information1.1 Your First Program
1.1 Your First Program Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 5/20/2013 9:37:22 AM Why Programming? Why programming? Need
More information1. Stack Implementation Using 1D Array
Lecture 5 Stacks 1 Lecture Content 1. Stack Implementation Using 1D Array 2. Stack Implementation Using Singly Linked List 3. Applications of Stack 3.1 Infix and Postfix Arithmetic Expressions 3.2 Evaluate
More informationCS-140 Fall 2017 Test 1 Version Practice Practie for Sept. 27, Name:
CS-140 Fall 2017 Test 1 Version Practice Practie for Sept. 27, 2017 Name: 1. (10 points) For the following, Check T if the statement is true, the F if the statement is false. (a) T F : In mathematics,
More informationCSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013
CSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013 Name: This exam consists of 6 problems on the following 6 pages. You may use your two-sided hand-written 8 ½ x 11 note sheet during the exam.
More informationCOSC160: Data Structures: Lists and Queues. Jeremy Bolton, PhD Assistant Teaching Professor
COSC160: Data Structures: Lists and Queues Jeremy Bolton, PhD Assistant Teaching Professor Outline I. Queues I. FIFO Queues I. Usage II. Implementations II. LIFO Queues (Stacks) I. Usage II. Implementations
More informationTesting Driven Development. Advanced Programming
Testing Driven Development Advanced Programming Test Driven Development (TDD) Practice for writing unit tests and production code concurrently and at a very fine level of granularity Programmers first
More informationProgram Fundamentals
Program Fundamentals /* HelloWorld.java * The classic Hello, world! program */ class HelloWorld { public static void main (String[ ] args) { System.out.println( Hello, world! ); } } /* HelloWorld.java
More informationWrite a program to implement stack or any other data structure in Java ASSIGNMENT NO 15
Write a program to implement stack or any other data structure in Java ASSIGNMENT NO 15 Title: Demonstrate implementation of data structure in Java Objectives: To learn implementation of data structure
More informationCSC 4181 Handout : JVM
CSC 4181 Handout : JVM Note: This handout provides you with the basic information about JVM. Although we tried to be accurate about the description, there may be errors. Feel free to check your compiler
More informationChapter 6 Introduction to Defining Classes
Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of
More informationCHAPTER 7 OBJECTS AND CLASSES
CHAPTER 7 OBJECTS AND CLASSES OBJECTIVES After completing Objects and Classes, you will be able to: Explain the use of classes in Java for representing structured data. Distinguish between objects and
More informationCS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)
CS/B.TECH/CSE(New)/SEM-5/CS-504D/2013-14 2013 OBJECT ORIENTED PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give their answers
More informationCMPS 11 Intermediate Programming Midterm 2 Review Problems
CMPS 11 Intermediate Programming Midterm 2 Review Problems 1. Determine the output of the following Java program. Notice that the method fcn2() is overloaded, so there are really three distinct functions
More informationCHAPTER 7 OBJECTS AND CLASSES
CHAPTER 7 OBJECTS AND CLASSES OBJECTIVES After completing Objects and Classes, you will be able to: Explain the use of classes in Java for representing structured data. Distinguish between objects and
More informationString. Other languages that implement strings as character arrays
1. length() 2. tostring() 3. charat() 4. getchars() 5. getbytes() 6. tochararray() 7. equals() 8. equalsignorecase() 9. regionmatches() 10. startswith() 11. endswith() 12. compareto() 13. indexof() 14.
More informationB.V. Patel Institute of BMC & IT, UTU 2014
BCA 3 rd Semester 030010301 - Java Programming Unit-1(Java Platform and Programming Elements) Q-1 Answer the following question in short. [1 Mark each] 1. Who is known as creator of JAVA? 2. Why do we
More informationTools : The Java Compiler. The Java Interpreter. The Java Debugger
Tools : The Java Compiler javac [ options ] filename.java... -depend: Causes recompilation of class files on which the source files given as command line arguments recursively depend. -O: Optimizes code,
More informationAn Introduction to Systematic Software Testing. Robert France CSU
An Introduction to Systematic Software Testing Robert France CSU Why do we need to systematically test software? Poor quality products can Inconvenience direct and indirect users Result in severe financial
More informationCSC System Development with Java. Exception Handling. Department of Statistics and Computer Science. Budditha Hettige
CSC 308 2.0 System Development with Java Exception Handling Department of Statistics and Computer Science 1 2 Errors Errors can be categorized as several ways; Syntax Errors Logical Errors Runtime Errors
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 informationCSE 582 Autumn 2002 Exam Sample Solution
Question 1. (10 points) Regular expressions. Describe the set of strings that are generated by the each of the following regular expressions. a) (a (bc)* d)+ One or more of the string a or the string d
More informationCode Generation Introduction
Code Generation Introduction i = 0 LF w h i l e i=0 while (i < 10) { a[i] = 7*i+3 i = i + 1 lexer i = 0 while ( i < 10 ) source code (e.g. Scala, Java,C) easy to write Compiler (scalac, gcc) parser type
More informationVariables and Java vs C++
Variables and Java vs C++ 1 What can be improved? (variables) public void godirection(string directionname) { boolean wenttoroom = false; for (Direction direction : currentroom.getdirections()) { if (direction.getdirectionname().equalsignorecase(directionname))
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 information