home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / edu / 1590 < prev    next >
Encoding:
Internet Message Format  |  1992-09-09  |  1.7 KB

  1. Xref: sparky comp.edu:1590 comp.lang.misc:2979
  2. Path: sparky!uunet!wupost!bcm!rice!sabry
  3. From: sabry@rice.edu (Amr Sabry)
  4. Newsgroups: comp.edu,comp.lang.misc
  5. Subject: Programmers
  6. Message-ID: <BuBBoJ.un@rice.edu>
  7. Date: 9 Sep 1992 13:19:30 GMT
  8. Sender: news@rice.edu (News)
  9. Reply-To: sabry@rice.edu (Amr Sabry)
  10. Organization: Rice University
  11. Lines: 44
  12. Originator: sabry@datura.cs.rice.edu
  13.  
  14.  
  15. Many people on this net implied that whoever can write a matrix
  16. multiplication subroutine in Fortran is a programmer.
  17.  
  18. Based on courses here at Rice University, here is a minimum list of
  19. *concepts* that a real programmer should know:
  20.  
  21. - Inductive definitions.
  22.  
  23. - Parsing.
  24.  
  25. - Types: Unsafe, dynamically typed, and statically typed languages.
  26.  
  27. - Constructed data: data representation independence.
  28.  
  29. - Lexical scope and procedures: implementing (call-by-value and
  30. call-by-name) closures.
  31.  
  32. - Store: assignements, static scope versus dynamic extent, garbage collection.
  33.  
  34. - Paramter passing techniques: by reference, copy-in-copy-out, by value.
  35.  
  36. - Object-oriented languages: objects, classes, inheritance ...
  37.  
  38. - Local control: Iteration via tail recursion.
  39.  
  40. - Non-local control: errors, exits, coroutines, goto ...
  41.  
  42. - Continuations and continuation-passing style.
  43.  
  44. - Macros: hygienic expansion.
  45.  
  46. - Time pre-emption and light weight processes.
  47.  
  48.  
  49. A person that understands the above concepts can design or implement
  50. any programming language. Furthermore, they can code an algorithm in
  51. any existing programming language efficiently. Finally, learning any
  52. new language amounts essentially to learning a new syntax.
  53.  
  54. -- 
  55. Amr Sabry                       sabry@cs.rice.edu
  56. ----------------------------------------------------------------
  57. "Why take time to learn when ignorance is instantaneous" -Calvin
  58.