User loginNavigation |
Teaching & LearningDesign Concepts in Programming LanguagesDesign Concepts in Programming Languages
By Andris Birkmanis at 2005-07-03 12:55 | Teaching & Learning | 5 comments | other blogs | 13150 reads
Haskell for C ProgrammersMany people are accustomed to imperative languagues, which include C, C++, Java, Python, and Pascal....For [beginning] computer science students,...Haskell is weird and obtuse....This tutorial assumes that the reader is familiar [only] with C/C++, Python, Java, or Pascal. I am writing for you because it seems that no other tutorial was written to help students overcome the difficulty of moving from C/C++, Java, and the like to Haskell. I write this assuming that you have checked out...the Gentle Introduction to Haskell, but...still don't understand what's going on.... Haskell is not 'a little different,' and will not 'take a little time.' It is very different and you cannot simply pick it up, although I hope that this tutorial will help. If you play around with Haskell, do not merely write toy programs. Simple problems will not take advantage of Haskell's power. Its power shines mostly clearly when you...attack difficult tasks....Haskell's tools...dramatically simplify your code.... I am going to put many pauses in this tutorial because learning Haskell hurt a lot, at least for me. I needed breaks, and my brain hurt while I was trying to understand.... Now I'm working on a video game in Haskell...and we've written a short tutorial...on HOpenGL.... Haskell has both more flexibility and more control than most languages. Nothing that I know of beats C's control, but Haskell has everything C does unless you need to control specific bytes in memory. So I call Haskell powerful, rather than just 'good.' I wrote this tutorial because Haskell was very hard for me to learn, but now I love it...."Haskell is hard!" "You can't write code the way I know how!" "My brain hurts!" "There aren't any good references!" That's what I said when I was in college. There were good references, but they didn't cover the real problem: coders know C. New explorers might enjoy Eclipse IDE support (version 3.1M7 or later only). Old hands might help improve it. Haskell compiles to C (cf. JHC) and machine code. By Mark Evans at 2005-05-22 22:43 | Functional | Teaching & Learning | 59 comments | other blogs | 86783 reads
Functional and Declarative Programming in Education (FDPE05)
A one day workshop on Sunday, 25 September at ICFP05.
I don't often post CFPs and the like, but since it's been awhile since FPDE02, and since many here have an active interest in these topics, I made an exception. Links to interesting projects related to FPDE, are more than welcome. By Ehud Lamm at 2005-05-11 08:00 | Teaching & Learning | login or register to post comments | other blogs | 5032 reads
Richard Hamming - "You and Your Research"During a discussion on the subject of passion in programming, David Bremner on #haskell pointed out Richard Hamming's 1986 talk You and Your Research. Here's a taste:
Hamming clearly describes both the difference between the two and how you can be one of those who do. By shapr at 2005-04-25 16:24 | General | History | Teaching & Learning | 16 comments | other blogs | 18658 reads
Sam Ruby: Continuations for Curmudgeons
A nice blog post that explains a number of basic PL concepts (value vs. reference, continuations, closures, coroutines) using examples from a bunch of popular languages (C, Javascript, Ruby, Python, BASIC, Java). Pugs, Practicing the Theories.A lot of language theory goes past here on Lambda the Ultimate, but we rarely see that theory directly impacting commercial programmers. By shapr at 2005-04-05 21:09 | DSL | Fun | Functional | Implementation | Meta-Programming | OOP | Paradigms | Software Engineering | Teaching & Learning | 5 comments | other blogs | 10678 reads
Building a Modern Computer From First Principles
A computer science textbook that wasn't discussed here before, and that many of you may haven't encountered yet.
The basic approach is summarized in the title of the authors presentation From Nand to Tetris in 12 Steps (3.5 MB, Powerpoint). I am sure LtU readers will find a lot to complain about (they authors build an OO language...), but I am fond of the hands on approach, which is kind of similar to the approach taken by our favorites: SICP, CTM, EOPL etc. Update: The published book is The Elements of Computing Systems, Building a Modern Computer from First Principles. Noam Nisan and Shimon Schocken, MIT Press, 2005. Don Box: Teaching my kids to programI think Box should get some input from the LtU community... Amazon Web Services in Scheme
Phil Windley is having fun with Scheme and XML (SSAX). His latest set of examples show how to use Amazon Web Services from DrScheme, and how to write DrScheme servlets.
Continuations must be next, right? :-) By Ehud Lamm at 2005-02-05 11:14 | Fun | Teaching & Learning | XML | 4 comments | other blogs | 9056 reads
Getting Started
It seems to me that LtU has many new readers and contributors since moving to the new site. That's great!
Yet it seems to me that the situation right now is that LtU has readers with very different backgrounds, among them many readers who haven't studied PL formally. Others come from academia, and study PL theory for a living. Since we have such a lively community it occured to me to start a thread for advice on where to begin aimed at those who haven't studied PL theory, yet want to follow the papers and books we discuss. So the question, mostly directed at old timers, is to which resources would you send a friend asking for advice on learning about the theoretical study of programming languages? P.S The early LtU archives may be helpful, since I used LtU to organize and collect the papers I read when I began my studies in the field. By Ehud Lamm at 2005-01-21 11:45 | General | Teaching & Learning | 65 comments | other blogs | 385541 reads
|
Browse archives
Active forum topics |
Recent comments
22 weeks 6 days ago
22 weeks 6 days ago
22 weeks 6 days ago
45 weeks 17 hours ago
49 weeks 2 days ago
50 weeks 6 days ago
50 weeks 6 days ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago