cse 341 lecture 29 b n.
Skip this Video
Loading SlideShow in 5 Seconds..
CSE 341 Lecture 29 b PowerPoint Presentation
Download Presentation
CSE 341 Lecture 29 b

Loading in 2 Seconds...

play fullscreen
1 / 7

CSE 341 Lecture 29 b - PowerPoint PPT Presentation

  • Uploaded on

CSE 341 Lecture 29 b. Course wrap-up slides created by Marty Stepp http://www.cs.washington.edu/341/. One view of languages. A broader view. Not all languages are functional or OO! logic languages (e.g., Prolog) scripting languages (Perl, Python, Lua) query languages (SQL)

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'CSE 341 Lecture 29 b' - dusty

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cse 341 lecture 29 b

CSE 341Lecture 29 b

Course wrap-up

slides created by Marty Stepp


a broader view
A broader view

Not all languages are functional or OO!

  • logic languages (e.g., Prolog)
  • scripting languages (Perl, Python, Lua)
  • query languages (SQL)
  • purely functional languages (Haskell; no ref or set!)
  • visual languages, spreadsheet languages, GUI-builders, text-formatters, hardware-synthesis, ...
  • languages with heavy support for parallel programming
why did we do this
Why did we do this?
  • the time needed to "pick up" a new language will drop dramatically (though you have to learn its libraries, too)
  • use mutation for what it's good for; not to create brittle programs with unseen dependencies
  • syntax matters, but it's not everything
  • apply idioms in languages besides where you saw them
  • recognize that language-design is hard; semantics should not be treated lightly; more syntax is not always better
big ideas
Big ideas
  • code runs in environments; scope/resolution matters
  • recursive data is processed with recursive functions
  • without mutation, copying vs. aliasing is indistinguishable
  • closures have many powerful uses
  • (dis-) advantages of static typing (and what is checked)
  • when evaluation occurs is important (thunks/macros)
  • OO vs. FP: many similarities and a couple big differences
  • parametric polymorphism vs. subtyping
  • can embed a language in another via interpreters/macros
big picture questions
Big picture questions
  • Which language we learned is your favorite? Why?
    • Least favorite?
  • What are the pros and cons of static/dynamic typing?
  • What are some benefits of coding in a functional style?
  • How does a functional language handle extensibility and reusable code, as opposed to how OO languages do it?
what next
What next?
  • learn more about the languages we covered
    • be careful/honest when listing them on your resume...!
  • learn a language similar to / inspired by ones we saw
    • Scala: functional/OO mixture that runs on Java VM
    • F#: Microsoft's ML clone; can interact with C# code
    • C#: Microsoft's Java clone
    • Clojure: Scheme/Lisp dialect that runs on Java VM
    • Scala/Ruby/Lua: dynamic and high-level, like JavaScript
  • take CSE 401 (Compilers)
    • learn much more about how compilers/interpreters work