15
Comparing Languages COMP360

Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

  • Upload
    lamque

  • View
    228

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Comparing Languages

COMP360

Page 2: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

“ Java is to JavaScript what Car is to Carpet. ”

Chris Heilmann

Page 3: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Course Evaluation

•Please complete the course evaluations for all classes

• You can find a link to the course evaluations on Blackboard

• So far only one person has completed the evaluation

Page 4: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Recursion

•A slide I copied from the textbook last week said

Recursion is equally powerful to iteration

•Actually recursion is more powerful than iteration

•Any iteration can be solved with recursion

•Not every recursive algorithm can be solved with iteration

Page 5: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Ackermann function

• The Ackermann function cannot be solved by iteration

Page 6: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

It Gets Big Fast

m\n 0 1 2 3 4 n

0 1 2 3 4 5

1 2 3 4 5 6

2 3 5 7 9 11

3 5 13 29 61 125

4

13

=

65533

=

265536 − 3

=

=

=

Page 7: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Comparing Languages

• Today I would like to discuss the difference between programming languages that we know

Java

C++

JavaScript

Haskell

Page 8: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Overview of C++ and Java

C++

•An object-oriented extension of C leaving all old C features (and warts)

• Little inheritance in the standard library

Java

• Strongly influenced by C++

• Everything inherits from a single parent class, Object

Page 9: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Connection to the Hardware

C++

•Compiles to native machine language

• Length of data values dependent on implementation

• Supports unsigned numbers

Java

•Compiles to byte codes

• Standardized data length

•All numbers are signed

Page 10: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Programming Paradigms

C++

•Procedural

•Object-Oriented

•Generic

• Functional

Java

•Procedural

•Object-Oriented

•Generic

• Functional

•MapReduce

Page 11: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Program Safety

C++

•No bounds checking

•Dynamic memory released via delete

•Allow operator overloading

• Supports goto

Java

•Bounds checking on all array access

•Garbage collection

•Operator overloading is not allowed

• goto is not allowed (reserved word)

Page 12: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Object Instantiation

C++

•Widget cat; creates a Widget object

• Supports pointers

Java

•Widget cat; creates a reference to a Widget object

•Reference variables are pointers, but pointer manipulation is not allowed

Page 13: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Comparison on Wikipedia

https://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B

Page 14: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Third Exam

•When should we have another exam in COMP360?

Page 15: Comparing Languages - NCATcswilliams.ncat.edu/comp360/ComparingLanguages.pdf · Comparing Languages ... Ackermann function •The Ackermann function cannot be solved by iteration

Course Evaluation

•Please complete the course evaluations for all classes

• You can find a link to the course evaluations on Blackboard

• So far only one person has completed the evaluation