COMP302: Programming Languages and Paradigms
Prof. (Sec 01) Francisco Ferreira (Sec 02)
School of Computer Science Mc
Copyright By PowCoder代写 加微信 powcoder
Week 7-2, Fall 2017
Functional Tidbit: What’s the future of programming?
“If you want to see which features will be in mainstream programming languages tomor- row, then take a look at functional program- ming languages today.”
“Languages like Haskell and OCaml have served as a laboratory for new ideas to be developed, some of which have then made the transition into the mainstream.”
(Principal Researcher at Microsoft)
Check out the article: “What’s the future of programming? The answer lies in functional languages” at www.techrepublic.com
COMP302: Programming Languages and Paradigms 2 / 4
The four main goals of COMP 302
COMP302: Programming Languages and Paradigms 3 / 4
The four main goals of COMP 302
1. Provide a thorough introduction to fundamental concepts in programming languages
Higher-order functions, State-full vs state-free computation, Modelling objects and closures, Exceptions to defer control, Continuations to defer control, Polymorphism, Partial evaluation, Lazy programming, Modules, . . .
2. Show different ways to reason about programs Type checking, Induction, Operational semantics, . . .
3. Introduce fundamental principles in programming language design Grammars and parsing, Operational semantics and interpreters, Type checking, polymorphism, and subtyping
4. Expose students to a different way of thinking about problems It’s like going to the gym; it’s good for you!
COMP302: Programming Languages and Paradigms
Today: Modules
Primary benefits:
• Control complexity of developing and maintaining software • Split large programs into separate piece
• Name space separation
• Allows for separate compilation
• Incremental development
• Clear specifications at module boundaries
• Programs are easier to maintain and reuse (!)
• Enforces abstractions
• Isolates bugs
COMP302: Programming Languages and Paradigms
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com