Binghamton University. CS-211 Fall Functions Revisited. Function Internals
|
|
- Matthew Dennis
- 5 years ago
- Views:
Transcription
1 Functions Revisited Function Internals 1
2 Activation Record When a function is invoked, an activation record is created Activation records hold: Location of the invocation Function being invoked Copies of the argument values for this activation Space for automatic variable values Space for a return value After the function returns, the activation record is deleted 2
3 Activation Records are kept in a stack Current function on top of stack When a function is invoked, add its activation record to the top of the stack After a function returns, remove it s activation record from the top of the stack 3
4 Example Call Stack 1. int addem(int x, int y); 3. int a=addem(3,4); 4. a=addem(a,4); 5. return 0; 6. } 7. int addem(int x, int y) { return x+y;} OS main a= 4
5 Example Call Stack 1. int addem(int x, int y); 3. int a=addem(3,4); 4. a=addem(a,4); 5. return 0; 6. } 7. int addem(int x, int y) { return x+y;} 3 addem x=3,y=4 OS main a= 5
6 Example Call Stack 1. int addem(int x, int y); 3. int a=addem(3,4); 4. a=addem(a,4); 5. return 0; 6. } 7. int addem(int x, int y) { return x+y;} 3 addem x=3,y=4 7 OS main a= 6
7 Example Call Stack 1. int addem(int x, int y); 3. int a=addem(3,4); 4. a=addem(a,4); 5. return 0; 6. } 7. int addem(int x, int y) { return x+y;} OS main a=7 7
8 Example Call Stack 1. int addem(int x, int y); 3. int a=addem(3,4); 4. a=addem(a,4); 5. return 0; 6. } 7. int addem(int x, int y) { return x+y;} 4 addem x=7,y=4 OS main a=7 8
9 Example Call Stack 1. int addem(int x, int y); 3. int a=addem(3,4); 4. a=addem(a,4); 5. return 0; 6. } 7. int addem(int x, int y) { return x+y;} 4 addem x=7,y=4 11 OS main a=7 9
10 Example Call Stack 1. int addem(int x, int y); 3. int a=addem(3,4); 4. a=addem(a,4); 5. return 0; 6. } 7. int addem(int x, int y) { return x+y;} OS main a=11 10
11 Example Call Stack 1. int addem(int x, int y); 3. int a=addem(3,4); 4. a=addem(a,4); 5. return 0; 6. } 7. int addem(int x, int y) { return x+y;} OS main a=
12 Notes on Call Stacks Arguments are passed by value Can t update callers value! GDB where command prints call stack Automatic local variables useful Don t need to worry about caller s environment! Don t need to worry about previous invocations Enables recursion 12
13 Recursive Function A recursive function is a function which calls itself For example, factorial fact(1)=1 fact(n)=n x fact(n-1) for n>1 For example: fact(2) = 2 x fact(1) = 2 x 1 = 2 fact(3) = 3 x fact(2) = 3 x 2 = 6 fact(4) = 4 x fact(3) = 4 x 6 = 24 13
14 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } OS main a 14
15 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } 3 fact 4 OS main a 15
16 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } 8 fact 3 3 fact 4 OS main a 16
17 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } 8 fact 2 8 fact 3 3 fact 4 OS main a 17
18 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } 8 fact 1 8 fact 2 8 fact 3 3 fact 4 OS main a 18
19 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } 8 fact fact 2 8 fact 3 3 fact 4 OS main a 19
20 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } 8 fact fact 3 3 fact 4 OS main a 20
21 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } 8 fact fact 4 OS main a 21
22 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } 3 fact 4 24 OS main a 22
23 Factorials in C 1. int fact(int x); 3. int a = fact(4); 4. return 0; 5. } 6. int fact(int x) { 7. if (x==1) return 1; 8. return x*fact(x-1); 9. } OS main a=24 23
24 Resources Programming in C, Chapter 7 Wikipedia: Call Stack ( Wikipedia: Recursion (computer science) ( 24
A function that invokes itself is said to
when a function invokes itself A function that invokes itself is said to be nothing new A common problem solving technique: - break problem down into smaller/simpler sub-problems - solve sub-problems -
More informationWarmup: On paper, write a C++ function that takes a single int argument (n) and returns the product of all the integers between 1 and n.
Warmup: On paper, write a C++ function that takes a single int argument (n) and returns the product of all the integers between 1 and n. Use a for loop. (This is actually a useful function in science and
More informationRun-time Environments
Run-time Environments Status We have so far covered the front-end phases Lexical analysis Parsing Semantic analysis Next come the back-end phases Code generation Optimization Register allocation Instruction
More informationRun-time Environments
Run-time Environments Status We have so far covered the front-end phases Lexical analysis Parsing Semantic analysis Next come the back-end phases Code generation Optimization Register allocation Instruction
More informationFunctions in MIPS. Functions in MIPS 1
Functions in MIPS We ll talk about the 3 steps in handling function calls: 1. The program s flow of control must be changed. 2. Arguments and return values are passed back and forth. 3. Local variables
More informationRun-Time Data Structures
Run-Time Data Structures Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers, it is used for:
More informationLectures 5. Announcements: Today: Oops in Strings/pointers (example from last time) Functions in MIPS
Lectures 5 Announcements: Today: Oops in Strings/pointers (example from last time) Functions in MIPS 1 OOPS - What does this C code do? int foo(char *s) { int L = 0; while (*s++) { ++L; } return L; } 2
More informationCSC 2400: Computer Systems. Using the Stack for Function Calls
CSC 24: Computer Systems Using the Stack for Function Calls Lecture Goals Challenges of supporting functions! Providing information for the called function Function arguments and local variables! Allowing
More informationSTUDENT LESSON A9 Recursion
STUDENT LESSON A9 Recursion Java Curriculum for AP Computer Science, Student Lesson A9 1 STUDENT LESSON A9 Recursion INTRODUCTION: Recursion is the process of a method calling itself as part of the solution
More information! Those values must be stored somewhere! Therefore, variables must somehow be bound. ! How?
A Binding Question! Variables are bound (dynamically) to values Subprogram Activation! Those values must be stored somewhere! Therefore, variables must somehow be bound to memory locations! How? Function
More informationThe Procedure Abstraction Part I Basics
The Procedure Abstraction Part I Basics Procedure Abstraction The compiler must deal with interface between compile time and run time Most of the tricky issues arise in implementing procedures Procedures
More informationECE260: Fundamentals of Computer Engineering
Supporting Nested Procedures James Moscola Dept. of Engineering & Computer Science York College of Pennsylvania Based on Computer Organization and Design, 5th Edition by Patterson & Hennessy Memory Layout
More informationLecture 5. Announcements: Today: Finish up functions in MIPS
Lecture 5 Announcements: Today: Finish up functions in MIPS 1 Control flow in C Invoking a function changes the control flow of a program twice. 1. Calling the function 2. Returning from the function In
More informationRun-time Environments. Lecture 13. Prof. Alex Aiken Original Slides (Modified by Prof. Vijay Ganesh) Lecture 13
Run-time Environments Lecture 13 by Prof. Vijay Ganesh) Lecture 13 1 What have we covered so far? We have covered the front-end phases Lexical analysis (Lexer, regular expressions,...) Parsing (CFG, Top-down,
More informationToday. Putting it all together
Today! One complete example To put together the snippets of assembly code we have seen! Functions in MIPS Slides adapted from Josep Torrellas, Craig Zilles, and Howard Huang Putting it all together! Count
More informationRecursive definition: A definition that is defined in terms of itself. Recursive method: a method that calls itself (directly or indirectly).
Recursion We teach recursion as the first topic, instead of new object-oriented ideas, so that those who are new to Java can have a chance to catch up on the object-oriented ideas from CS100. Recursive
More informationScope, Functions, and Storage Management
Scope, Functions, and Storage Management Implementing Functions and Blocks cs3723 1 Simplified Machine Model (Compare To List Abstract Machine) Registers Code Data Program Counter (current instruction)
More informationCS1150 Principles of Computer Science Methods
CS1150 Principles of Computer Science Methods Yanyan Zhuang Department of Computer Science http://www.cs.uccs.edu/~yzhuang CS1150 UC. Colorado Springs Opening Problem Find the sum of integers from 1 to
More informationTail Recursion. ;; a recursive program for factorial (define fact (lambda (m) ;; m is non-negative (if (= m 0) 1 (* m (fact (- m 1))))))
Tail Recursion 1 Tail Recursion In place of loops, in a functional language one employs recursive definitions of functions. It is often easy to write such definitions, given a problem statement. Unfortunately,
More informationCS153: Compilers Lecture 8: Compiling Calls
CS153: Compilers Lecture 8: Compiling Calls Stephen Chong https://www.seas.harvard.edu/courses/cs153 Announcements Project 2 out Due Thu Oct 4 (7 days) Project 3 out Due Tuesday Oct 9 (12 days) Reminder:
More informationLecture 7: MIPS Functions Part 2. Nested Function Calls. Lecture 7: Character and String Operations. SPIM Syscalls. Recursive Functions
Part Part Part What if we need to call a function inside of a function? Will this work? int twofun(int a, int b) { int res; res = addfun(a, b) a / ; return res; } twofun: addi $sp, $sp, -4 sw $s0, 0($sp)
More informationThe Procedure Abstraction Part I: Basics
The Procedure Abstraction Part I: Basics Procedure Abstraction Begins Chapter 6 in EAC The compiler must deal with interface between compile time and run time Most of the tricky issues arise in implementing
More informationFundamentals of Programming
Fundamentals of Programming Pointers Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 29, 2012 G. Lipari (Scuola Superiore Sant Anna) Pointers February 29, 2012 1
More informationEECS 477: Introduction to algorithms. Lecture 7
EECS 477: Introduction to algorithms. Lecture 7 Prof. Igor Guskov guskov@eecs.umich.edu September 26, 2002 1 Lecture outline Recursion issues Recurrence relations Examples 2 Recursion: factorial unsigned
More informationCENG3420 Computer Organization and Design Lab 1-2: System calls and recursions
CENG3420 Computer Organization and Design Lab 1-2: System calls and recursions Wen Zong Department of Computer Science and Engineering The Chinese University of Hong Kong wzong@cse.cuhk.edu.hk Overview
More informationData Structures and Algorithms
Data Structures and Algorithms Milind Sohoni www.cse.iitb.ac.in/ sohoni email: sohoni@cse.iitb.ac.in December 17, 2016 1 / 9 Recursion The function achieved a separation of the evaluation of the function
More informationSubroutines. int main() { int i, j; i = 5; j = celtokel(i); i = j; return 0;}
Subroutines Also called procedures or functions Example C code: int main() { int i, j; i = 5; j = celtokel(i); i = j; return 0;} // subroutine converts Celsius to kelvin int celtokel(int i) { return (i
More informationAbout Functions. Purpose: Encapsulate procedural information Control flow and call order. Scope (Global vs. Local) Parameters Recursion
SaM Functions Purpose: Encapsulate procedural information Control flow and call order Callee vs. Caller Scope (Global vs. Local) Parameters Recursion Each function call as a separate invocation About Functions
More informationCS 316: Procedure Calls/Pipelining
CS 316: Procedure Calls/Pipelining Kavita Bala Fall 2007 Computer Science Cornell University Announcements PA 3 IS out today Lectures on it this Fri and next Tue/Thu Due on the Friday after Fall break
More informationFunction. specific, well-defined task. whenever it is called or invoked. A function to add two numbers A function to find the largest of n numbers
Functions 1 Function n A program segment that carries out some specific, well-defined task n Example A function to add two numbers A function to find the largest of n numbers n A function will carry out
More informationContinuations and Continuation-Passing Style
Continuations and Continuation-Passing Style Lecture 4 CS 390 1/16/08 Goal Weʼre interested in understanding how to represent the state of a co-routine Insight into what a thread really means How fundamental
More informationPROGRAMMING IN HASKELL. CS Chapter 6 - Recursive Functions
PROGRAMMING IN HASKELL CS-205 - Chapter 6 - Recursive Functions 0 Introduction As we have seen, many functions can naturally be defined in terms of other functions. factorial :: Int Int factorial n product
More informationFORM 2 (Please put your name and form # on the scantron!!!!)
CS 161 Exam 2: FORM 2 (Please put your name and form # on the scantron!!!!) True (A)/False(B) (2 pts each): 1. Recursive algorithms tend to be less efficient than iterative algorithms. 2. A recursive function
More informationCompilation /15a Lecture 7. Activation Records Noam Rinetzky
Compilation 0368-3133 2014/15a Lecture 7 Activation Records Noam Rinetzky 1 Code generation for procedure calls (+ a few words on the runtime system) 2 Code generation for procedure calls Compile time
More informationCS1150 Principles of Computer Science Methods
CS1150 Principles of Computer Science Methods Yanyan Zhuang Department of Computer Science http://www.cs.uccs.edu/~yzhuang CS1150 UC. Colorado Springs Opening Problem Find the sum of integers from 1 to
More informationINF 212 ANALYSIS OF PROG. LANGS FUNCTION COMPOSITION. Instructors: Crista Lopes Copyright Instructors.
INF 212 ANALYSIS OF PROG. LANGS FUNCTION COMPOSITION Instructors: Crista Lopes Copyright Instructors. Topics Recursion Higher-order functions Continuation-Passing Style Monads (take 1) Identity Monad Maybe
More informationFormal Methods for Java
Formal Methods for Java Lecture 1: Introduction Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg October 26, 2011 Jochen Hoenicke (Software Engineering) Formal Methods for Java October
More informationCS415 Compilers. Procedure Abstractions. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University
CS415 Compilers Procedure Abstractions These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University Where are we? Well understood Engineering Source Code
More informationCSC 8400: Computer Systems. Using the Stack for Function Calls
CSC 84: Computer Systems Using the Stack for Function Calls Lecture Goals Challenges of supporting functions! Providing information for the called function Function arguments and local variables! Allowing
More informationComputing Fundamentals Advanced functions & Recursion
Computing Fundamentals Advanced functions & Recursion Salvatore Filippone salvatore.filippone@uniroma2.it 2014 2015 (salvatore.filippone@uniroma2.it) Recursion 2014 2015 1 / 14 Anonymous functions Useful
More information1 Number Representation(10 points)
Name: Sp15 Midterm Q1 1 Number Representation(10 points) 1 NUMBER REPRESENTATION(10 POINTS) Let x=0xe and y=0x7 be integers stored on a machine with a word size of 4bits. Show your work with the following
More informationCS64 Week 5 Lecture 1. Kyle Dewey
CS64 Week 5 Lecture 1 Kyle Dewey Overview More branches in MIPS Memory in MIPS MIPS Calling Convention More Branches in MIPS else_if.asm nested_if.asm nested_else_if.asm Memory in MIPS Accessing Memory
More informationCSE 307: Principles of Programming Languages
1 / 26 CSE 307: Principles of Programming Languages Names, Scopes, and Bindings R. Sekar 2 / 26 Topics Bindings 1. Bindings Bindings: Names and Attributes Names are a fundamental abstraction in languages
More informationCOMP 202 Recursion. CONTENTS: Recursion. COMP Recursion 1
COMP 202 Recursion CONTENTS: Recursion COMP 202 - Recursion 1 Recursive Thinking A recursive definition is one which uses the word or concept being defined in the definition itself COMP 202 - Recursion
More informationCSC 2400: Computing Systems. X86 Assembly: Function Calls"
CSC 24: Computing Systems X86 Assembly: Function Calls" 1 Lecture Goals! Challenges of supporting functions" Providing information for the called function" Function arguments and local variables" Allowing
More informationCS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c/su06 CS61C : Machine Structures Lecture #9: MIPS Procedures 2006-07-11 CS 61C L09 MIPS Procedures (1) Andy Carle C functions main() { int i,j,k,m;... i = mult(j,k);... m =
More informationCMSC 132: Object-Oriented Programming II. Recursive Algorithms. Department of Computer Science University of Maryland, College Park
CMSC 132: Object-Oriented Programming II Recursive Algorithms Department of Computer Science University of Maryland, College Park Recursion Recursion is a strategy for solving problems A procedure that
More informationSubroutines. we jump to a new location in the code
Subroutines EE 57 Unit 7 Subroutines Stacks Subroutines (or functions) are portions of code that we can call from anywhere in our code, execute that t subroutine, and then A subroutine to calculate the
More informationRECURSIVE FUNCTIONS ON STACK
Debugging with Visual Studio & GDB OCTOBER 31, 2015 BY CSC 342 FALL 2015 Prof. IZIDOR GERTNER 1 Table of contents 1. Objective... pg. 2 2. Overview... pg. 3 3. Microsoft s Visual Studio Debugger... pg.
More informationInformatica e Sistemi in Tempo Reale
Informatica e Sistemi in Tempo Reale Puntatori Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 5, 2011 G. Lipari (Scuola Superiore Sant Anna) Introduction to C October
More informationPatterns The Essence of Functional Programming
Patterns The Essence of Functional Programming Up to now we have defined functions in a very traditional way: function name + variable name parameters Read Chap 7 In functional programming we can exploit
More informationWe cover recursion in 150. Why do it again in 151?
Recursion We cover recursion in 150. Why do it again in 151? First, good solutions to problems are often recursive. Here is a quick way to sort a list of objects: split the list in half, recursively sort
More information9/16/14. Overview references to sections in text RECURSION. What does generic mean? A little about generics used in A3
Overview references to sections in text 2 Note: We ve covered everything in JavaSummary.pptx! What is recursion 7.1-7.39 slide 1-7 Base case 7.1-7.10 slide 13 How Java stack frames work 7.8-7.10 slide
More informationProgramming & Data Structure
Functions Programming & Data Structure CS 11002 Partha Bhowmick http://cse.iitkgp.ac.in/ pb CSE Department IIT Kharagpur Spring 2012-2013 Functions Callee : Caller = Bowler : Captain Functions int f(){...
More informationRecursion. What is Recursion? Simple Example. Repeatedly Reduce the Problem Into Smaller Problems to Solve the Big Problem
Recursion Repeatedly Reduce the Problem Into Smaller Problems to Solve the Big Problem What is Recursion? A problem is decomposed into smaller sub-problems, one or more of which are simpler versions of
More informationData Structures And Algorithms
Data Structures And Algorithms Recursion Eng. Anis Nazer First Semester 2016-2017 Recursion Recursion: to define something in terms of itself Example: factorial n!={ 1 n=0 n (n 1)! n>0 Recursion Example:
More informationCSC 2400: Computing Systems. X86 Assembly: Function Calls
CSC 24: Computing Systems X86 Assembly: Function Calls 1 Lecture Goals Challenges of supporting functions Providing information for the called function Function arguments and local variables Allowing the
More informationLecture 7 CS2110 Fall 2014 RECURSION
Lecture 7 CS2110 Fall 2014 RECURSION Overview references to sections in text 2 Note: We ve covered everything in JavaSummary.pptx! What is recursion? 7.1-7.39 slide 1-7 Base case 7.1-7.10 slide 13 How
More informationFUNCTIONS OMPAL SINGH
FUNCTIONS 1 INTRODUCTION C enables its programmers to break up a program into segments commonly known as functions, each of which can be written more or less independently of the others. Every function
More informationCS 320: Concepts of Programming Languages
CS 320: Concepts of Programming Languages Wayne Snyder Computer Science Department Boston University Lecture 24: Compilation: Implementing Function Calls o Function Definitions in Mini-C o The Run-Time
More informationType Checking Binary Operators
Type Checking Binary Operators binaryopnode expr tree expr tree Type checking steps: 1. Type check left and right operands. 2. Check that left and right operands are both scalars. 3. binaryopnode.kind
More informationBinghamton University. CS-211 Fall Functions. The Basis of C
Functions The Basis of C 1 What is a function? Have you ever needed to convert from C to F? Demo: http://www.pronk.com/samples/projects/021$function_machine/fu nction_machine.html 2 Function in C float
More informationCompilation 2014 Activation Records (Part 1)
Compilation 2014 Activation Records (Part 1) Aslan Askarov aslan@cs.au.dk Revised from slides by E. Ernst (Abstract) computer organization Program memory code segment contains program text data segment
More informationSystem Software Assignment 1 Runtime Support for Procedures
System Software Assignment 1 Runtime Support for Procedures Exercise 1: Nested procedures Some programming languages like Oberon and Pascal support nested procedures. 1. Find a run-time structure for such
More informationIMPORTANT QUESTIONS IN C FOR THE INTERVIEW
IMPORTANT QUESTIONS IN C FOR THE INTERVIEW 1. What is a header file? Header file is a simple text file which contains prototypes of all in-built functions, predefined variables and symbolic constants.
More informationCOMP 303 Computer Architecture Lecture 3. Comp 303 Computer Architecture
COMP 303 Computer Architecture Lecture 3 Comp 303 Computer Architecture 1 Supporting procedures in computer hardware The execution of a procedure Place parameters in a place where the procedure can access
More informationShell CSCE 314 TAMU. Functions continued
1 CSCE 314: Programming Languages Dr. Dylan Shell Functions continued 2 Outline Defining Functions List Comprehensions Recursion 3 A Function without Recursion Many functions can naturally be defined in
More informationRun Time Environment. Activation Records Procedure Linkage Name Translation and Variable Access
Run Time Environment Activation Records Procedure Linkage Name Translation and Variable Access Copyright 2015, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at the University
More information2/12/2018. Recall Why ISAs Define Calling Conventions. ECE 220: Computer Systems & Programming. Recall the Structure of the LC-3 Stack Frame
University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 220: Computer Systems & Programming Stack Frames Revisited Recall Why ISAs Define Calling Conventions A compiler
More informationRecursion(int day){return Recursion(day += 1);} Comp Sci 1575 Data Structures. Recursive design. Convert loops to recursion
Recursion(int day){return Recursion(day += 1);} Comp Sci 1575 Data Structures Outline 1 2 Solution 2: calls 3 Implementation To create recursion, you must create recursion. How to a recursive algorithm
More informationChapter 5 C Functions
Chapter 5 C Functions Objectives of this chapter: To construct programs from small pieces called functions. Common math functions in math.h the C Standard Library. sin( ), cos( ), tan( ), atan( ), sqrt(
More informationThe return Statement
The return Statement The return statement is the end point of the method. A callee is a method invoked by a caller. The callee returns to the caller if the callee completes all the statements (w/o a return
More information34. Recursion. Java. Summer 2008 Instructor: Dr. Masoud Yaghini
34. Recursion Java Summer 2008 Instructor: Dr. Masoud Yaghini Outline Introduction Example: Factorials Example: Fibonacci Numbers Recursion vs. Iteration References Introduction Introduction Recursion
More informationAnswers to review questions from Chapter 2
Answers to review questions from Chapter 2 1. Explain in your own words the difference between a method and a program. A method computes a value or performs some operation on behalf of the code for a program.
More informationECE232: Hardware Organization and Design
ECE232: Hardware Organization and Design Lecture 6: Procedures Adapted from Computer Organization and Design, Patterson & Hennessy, UCB Overview Procedures have different names in different languages Java:
More informationThreads (light weight processes) Chester Rebeiro IIT Madras
Threads (light weight processes) Chester Rebeiro IIT Madras 1 Processes Separate streams of execution Each process isolated from the other Process state contains Process ID Environment Working directory.
More informationFaculty of Engineering Computer Engineering Department Islamic University of Gaza C++ Programming Language Lab # 6 Functions
Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2013 C++ Programming Language Lab # 6 Functions C++ Programming Language Lab # 6 Functions Objective: To be familiar with
More informationRecursion. CSE 2320 Algorithms and Data Structures University of Texas at Arlington
Recursion CSE 2320 Algorithms and Data Structures University of Texas at Arlington Updated: 2/21/2018 1 Background & Preclass Preparation Background (review): Recursive functions Factorial must know how
More informationCSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion
CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion Review from Lectures 5 & 6 Arrays and pointers, Pointer arithmetic and dereferencing, Types of memory ( automatic, static,
More informationAlgorithm. An algorithm is a computational process for solving a problem. computational: a computer must be able to perform the steps of the process
Algorithm An algorithm is a computational process for solving a problem. computational: a computer must be able to perform the steps of the process This concept was formalized by Alan Turing and Alonzo
More informationFunction Calls. 1 Administrivia. Tom Kelliher, CS 240. Feb. 13, Announcements. Collect homework. Assignment. Read
Function Calls Tom Kelliher, CS 240 Feb. 13, 2002 1 Administrivia Announcements Collect homework. Assignment Read 3.7 9. From Last Time SPIM lab. Outline 1. Function calls: stack execution model, memory
More informationCSE 230 Intermediate Programming in C and C++ Functions
CSE 230 Intermediate Programming in C and C++ Functions Fall 2017 Stony Brook University Instructor: Shebuti Rayana shebuti.rayana@stonybrook.edu http://www3.cs.stonybrook.edu/~cse230/ Concept of Functions
More informationCISC 3115 TY3. C21a: Recursion. Hui Chen Department of Computer & Information Science CUNY Brooklyn College. 11/6/2018 CUNY Brooklyn College
CISC 3115 TY3 C21a: Recursion Hui Chen Department of Computer & Information Science CUNY Brooklyn College 11/6/2018 CUNY Brooklyn College 1 Outline Motivation: finding file Base case and recursive subproblem
More informationLecture Notes on Memory Layout
Lecture Notes on Memory Layout 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 11 1 Introduction In order to understand how programs work, we can consider the functions,
More informationMore C functions and Big Picture [MIPSc Notes]
More C functions and Big Picture [MIPSc Notes] Implementing C functions Passing parameters Local variables Stack frames Big picture Compiling Assembling Passing parameters by value or reference Galen H.
More informationDefining Functions. CSc 372. Comparative Programming Languages. 5 : Haskell Function Definitions. Department of Computer Science University of Arizona
Defining Functions CSc 372 Comparative Programming Languages 5 : Haskell Function Definitions Department of Computer Science University of Arizona collberg@gmail.com When programming in a functional language
More informationUnit #3: Recursion, Induction, and Loop Invariants
Unit #3: Recursion, Induction, and Loop Invariants CPSC 221: Basic Algorithms and Data Structures Anthony Estey, Ed Knorr, and Mehrdad Oveisi 2016W2 Unit Outline I Thinking Recursively I Recursion Examples
More informationLecture 6: Assembly Programs
Lecture 6: Assembly Programs Today s topics: Procedures Examples Large constants The compilation process A full example 1 Procedures Local variables, AR, $fp, $sp Scratchpad and saves/restores, $fp Arguments
More informationRecursion vs Induction
Recursion vs Induction CS3330: Algorithms The University of Iowa 1 1 Recursion Recursion means defining something, such as a function, in terms of itself For example, let f(x) = x! We can define f(x) as
More informationRecursion vs Induction. CS3330: Algorithms The University of Iowa
Recursion vs Induction CS3330: Algorithms The University of Iowa 1 Recursion Recursion means defining something, such as a function, in terms of itself For example, let f(x) = x! We can define f(x) as
More information1 Recursion. 2 Recursive Algorithms. 2.1 Example: The Dictionary Search Problem. CSci 235 Software Design and Analysis II Introduction to Recursion
1 Recursion Recursion is a powerful tool for solving certain kinds of problems. Recursion breaks a problem into smaller problems that are identical to the original, in such a way that solving the smaller
More informationCOMP-202. Recursion. COMP Recursion, 2011 Jörg Kienzle and others
COMP-202 Recursion Recursion Recursive Definitions Run-time Stacks Recursive Programming Recursion vs. Iteration Indirect Recursion Lecture Outline 2 Recursive Definitions (1) A recursive definition is
More informationMIPS Procedure Calls. Lecture 6 CS301
MIPS Procedure Calls Lecture 6 CS301 Function Call Steps Place parameters in accessible location Transfer control to function Acquire storage for procedure variables Perform calculations in function Place
More informationMachine Programming 3: Procedures
Machine Programming 3: Procedures CS61, Lecture 5 Prof. Stephen Chong September 15, 2011 Announcements Assignment 2 (Binary bomb) due next week If you haven t yet please create a VM to make sure the infrastructure
More informationIntroduction to Programming (Java) 4/12
Introduction to Programming (Java) 4/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction
More informationCS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c/su06 CS61C : Machine Structures Lecture #6: Memory Management CS 61C L06 Memory Management (1) 2006-07-05 Andy Carle Memory Management (1/2) Variable declaration allocates
More informationFunction Calls. Tom Kelliher, CS 220. Oct. 24, SPIM programs due Wednesday. Refer to homework handout for what to turn in, and how.
Function Calls Tom Kelliher, CS 220 Oct. 24, 2011 1 Administrivia Announcements Assignment SPIM programs due Wednesday. Refer to homework handout for what to turn in, and how. From Last Time Outline 1.
More informationTopic 12 Introduction to Recursion. "To a man with a hammer, everything looks like a nail" -Mark Twain
Topic 12 Introduction to Recursion "To a man with a hammer, everything looks like a nail" -Mark Twain Underneath the Hood. The Program Stack When you invoke a method in your code what happens when that
More informationChapter 14 Functions
Chapter 14 Functions Function Smaller, simpler, subcomponent of program Provides abstraction hide low-level details give high-level structure to program, easier to understand overall program flow enables
More informationEncoding functions in FOL. Where we re at. Ideally, would like an IF stmt. Another example. Solution 1: write your own IF. No built-in IF in Simplify
Where we re at We explored the three standard logics, and compared them along three dimensions expressiveness automation human-friendliness Next we ll look in more detail at FOL we will explore how to
More information