[Skip Navigation] [CSUSB] / [CNS] / [CSE] / [R J Botting] /[CS320 Course Materials] /index.html [index.txt(Text)] [Search ]
Fri May 11 14:04:19 PDT 2012
[Schedule] [Syllabi] [Text] [Labs] [Projects] [Resources] [Grading] [Contact]
Notes: [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]
Opening the PDF files on this page may require you to download Adobe Reader or an equivalent viewer (GhostScript).

Contents


    CSE320 High-Level Computer Languages

      2012-05-11 Fri May 11 14:01 Grades and next week

      Grades have been posted [ grading/ ]

      Here is the plan for next week -- note the readings:
      Table
      #DateTopicsPrepare(2 points) for class(2 points)Lab (10 points each)
      13May 15Functional Programming Chapter 15 not section 8 [ 13.html ] LISP103 [ lab/13.html ]
      14May 17Data Abstraction Chapter 2 section 14 + Chapter 11 [ 14.html ] C/C++ ADTs [ lab/14.html ]
      **May 22Project Deadline Phase 2Phase 2 due in: changed EBNF and draft UML (10pts)

      (Close Table)

      2012-05-09 Wed May 9 10:31 Chapter 10 on Thursday night

      [ 12.html ]

      2012-05-08 Tue May 8 08:53 Reminder -- LISP tonite

      2012-05-04 Fri May 4 08:22 Grades and LISP next week

      Grades [ grading/ ] have been posted. Please check for errors -- they will be corrected.

      Prepare for the Tuesday classs by following the study guide [ 11.html ] that introduces LISP. This includes a comic, section 2.4 of the text book, my handout [ LISP.pdf ] (PDF) [ handouts/320wlisp.html ] (old HTML version) , and the [ guile.html ] handout.

      Due at the start of class: Rev qns+ans + resubmit project phase 1.

      Also be ready to ask some questions about LISP.

      2012-05-01 Tue May 1 15:51 Bonus opportunities

      [ ../seminar/ ]

      2012-04-27 Fri Apr 27 09:08 Grades Posted and next week

      See [ grading/ ] for you latest scores and things to come.

      Check the [ schedule.html ] for readings, work due, labs, etc.

      Next week. On Tuesday [ 09.html ] we study statements and on Thursday [ 10.html ] subprograms.

      You can resubmit project phase 1 on Tuesday the week after that May 8th.

      2012-04-25 Wed Apr 25 11:13 Language stats and discussion of the day

      [ cc-back-on-top-of-the-programming-heap ]

      2012-04-24 Tue Apr 24 10:38 Data Types and Project 1 tonite

      [ 07.html ]

      Here is a little enrichment [ 232900836?cid=DDJ_nl_upd_2012-04-24_h&elq=837c38b000864c6b8531c8f65e88b42a ] on improving the humble Boolean data type.

      2012-04-23 Mon Apr 23 11:09 A replaced by smallawk

      Thanks to a warning from an alert student.... I've removed "A" from the projects and substituted "smallawk" in its place...

      2012-04-21 Sat Apr 21 07:41 Wat

      Just added [ wat ] to the first lab.... with thanks to Nick.

      2012-04-20 Fri Apr 20 10:08 More Grading Published

      I've published all the grading up to and including last nights (Thursday) lab: [ grading/ ] If you have returned your form ... you can review these.

      The next class is on Tuesday 24th and will review the material in Chapter 6 on data types. Project Phase 1 is Due at the start of class along with the usual review questions and answers from chapter 6.

      2012-04-13 Fri Apr 13 08:59 First grades posted

      If you have returned your yellow PinWord/Contract form you should be able to look at your grading at [ grading ] , tell me if you spot an error! Note: your PinWord is replaced by three asterisks.

      2012-04-12 Thu Apr 12 08:57 Tonite apr 12th -- Syntax -- email credit

      Tonite [ 04.html ] we will be reviewing methods for describing syntax -- based on chapters 3, 4 and a special handout. The lab will be on BNF.

      If you can not make it to the lab send me the URL when it is done instead. You don't have to turn up or sty to the end. But you may wish to improve it after I let you know the grade. I normally handle this face-to-face but it can be done by email.

      Similarly if you need to miss a class send me 4 review Qns+Answers by email. Check out the work we do on the web site instead of attending.

      2012-04-10 Tue Apr 10 08:36 Tonight -- History of Programming Languages

      [ 03.html ]

      Study chapter 2 and be ready to review the material! Bring a couple of review questions with answers. I will also be bring a couple of handouts to add to the reading for Thursday's class.

      2012-04-04 Wed Apr 4 16:24 Updated the template for the final

      [ template.pdf ]

      2012-04-04 Wed Apr 4 09:28 Clarifying the grading of assigned work

      In every classs, but the first you should bring a piece of paper with your name and two (2) or more review questions + Answers. I will give one(1) point to each up to a max of 2 points. I will add 1 point for being on time. And another for being active until the end of the class.

      Later we will have project work due at the start of the class as well.

      In the next class [ 02.html ] , Thursday, the questions and answers come from Chapter 1.

      If you missed class [ 01.html ] you can look at the page and read/download the syllabusses and schedule.

      Note: It turns out that one or two lab machines don't get the right passwords. So if you can'e login, try another machine.

      2012-04-03 Tue Apr 3 16:45 Ready or not -- first CSE320 class and lab tonight

      [ 01.html ]

      2012-03-19 Mon Mar 19 10:12 Starting to update CSE320 for the Spring 2012 quarter

      I need to change the dates and make a lot of small adjustments to the study guides and exercises to fit the new book.

      2012-03-02 Fri Mar 2 12:29 Racket is a LISP extension

      This [Flatt12] is a demonstration of how an extension of LISP (called Racket) creates a programming language that lets you write a classic adventure text style game. It looks to provide a short cut.... Practical LISP programming always started with putting some extra structures on top of the LISP core.

      2012-01-18 Wed Jan 18 14:55 Book for Spring 2012 Announced

      1. Concepts of Programming Languages, 10/E
      2. Robert W. Sebesta, University of Colorado, Colorado Springs
      3. ISBN-10: 0131395319 ISBN-13: 9780131395312
      4. Publisher: Addison-Wesley Copyright: 2013
      5. Format: Cloth; 816 pp
      6. Published: 01/06/2012
      7. URL [ 9780131395312.page ]

      2012-01-04 Wed Jan 4 11:34 New languages that might shake things up

      [ 10-programming-languages-could-shake-it-181548?page=0,4 ] (Infoworld (01/03/12) Neil McAllister )

      2011-10-31 Mon Oct 31 10:24 Perl vs a random language

      This [ StefikPlateau2011.pdf ] paper describes an experiment where Perl is compare to two other languages. One is designed with random lexemes, and another to be easier to write.

      2011-09-22 Thu Sep 22 20:01 Tiobe Index of popular Programming languages

      Here is the annual listing of the 20 most popular languages [ index.html ] in the Tiobe Community. The biggest changes are 11 place jump by Lua and the 10 place jump of D.

      Here is a quick list of the top twenty from most popular to least popular: Java, C, C++, C#, PHP, Objective-C, Visiual-Basic, Python, Perl, Javascript, Lua, LISP, Transact-SQL, Pascal, PL.SQL, Ada, RPG, D, ...

      2011-08-09 Tue Aug 9 16:26 Rosetta Stone of Code

      Nice website about programming languages [ Help:Similar_Sites ]

      Items redacted below

      2011-06-03 Fri Jun 3 13:56 info on Final

      Here is the template [ template.pdf ] I used to generate finals in this class.

      Bring lots of paper to the final!

      You can bring your Homeowrk and labwork to the final as well.

      2011-06-03 Fri Jun 3 06:23 Question in class -- ROFL

      A couple of questions in class...
      Net
      1. ...
      2. Is it true that you can get car insurance from GEICO at 15% of your current insurance?
      3. LOL!
      4. Why don't you ask Prolog?

      (End of Net)

      I was laughing to much to come up with an answer.... but here it is.

      This would answer the question

       		GEICO <= Current * (1.0 - 0.15).
      if the variables GEICO and Current were instanciated with the right values...

      And you could define a couple of predicates to describe the offerings:

       		geico(....).
       		current(.....).
      and then compile these and the query below will answer the question:
       		geico(GEICO),current(Current), GEICO <= Current * (1.0 - 0.15).

      A more comprehensive approach is via a predicate/data base

    1. car_insurance('AAA', ....).
    2. car_insurance('Farmers', ....).
    3. car_insurance('GEICO', ....).
    4. ...

      and writing a predicate/program that picks the minimum price. There is a Prolog solution but it goes beyond the elementary techniques in the book and the first two labs.... as far as I can see. I'll post a solution later.

    5. 10:13:33 Here [ prolog/minimum.plg ] it is. Still looking for a solution that does not involve assert/retract.

    6. 13:11:19 Found how to use bagof and min_list: [ prolog/minimum2.plg ]

      2011-05-12 Thu May 12 13:58 Special Instruction for tonight

      To save a little time grading and handing back assigned work in class...

      Do not hand in your Qns+Ans tonight but keep them until the start of class.

      Jane Curnutt has invented a cunning procedure to save us time sorting the work.

      Each colmun of people will pass work forward with the first (alphabetically) going first, starting at the back, wait for the pack to arrive and insert yours and pass it forward...

      And we will take it from there...

      2011-05-12 Thu May 12 07:50 Eliza is alive and well in Poplog

      We discussed Eliza, AI, and languages that are competing with LISP in the AI domain.

      Jack Price found [ eliza ] a simplified Eliza running on a web page in the University of Birmingham, England.

      It is written in Poplog. Poplog is a language that we don't have time to study. It is the marriage of Pop and Prolog.

      Pop was a interpreted functional language "Pop" developed in Edinburgh (circa 1967), Scotland by a man called Popplestone. [ POP-2 ] He claimed the name came from the run-time stack he used, however. I have always like the look of it -- I have the manual in my office.... but I've never used it. And it has never got very much press or following. However I have stolen some ideas from it and put them in my own MATHS language.

      We will talk about Prolog at the end of this course.

      2011-05-05 Thu May 5 06:42 Python uses call by what

      [ 4b8b0e06a2d5cfcc?hl=en ]

      Also see [ call-by-object.htm ]

      By the way.... this is a live discussion, not a valued source of data.

      2011-04-07 Thu Apr 7 08:17 Work due tonight

      I was asked what was due to night. Here is my answer:
        There is always something due at the start of every meeting!

        This time you can get full 100% credit by handing in 2 Review Questions+Answers from Chapter 1. You may hand in more. I usually ignore the extras.

        Make them readable!


      2011-03-21 Mon Mar 21 13:35 Mirah is Java made easy

      Another new language spinning of from Ruby and Java: [ fun-java-with-mirah ]

      2011-02-22 Tue Feb 22 14:19 New resource

      [ programming-languages-basics ]

      2010-09-28 Tue Sep 28 18:44 LISP on top of Java is Clojure

      A new LISP is on the block
    7. Clojure::= See http://clojure.org/.

      Working on Python

      I have improved and will be further improving [ samples/python.html ] my python pages.

      2010-06-02 Wed Jun 2 12:14 GCC moving from C to C++

      From Slashdot
        [ GCC-Moving-To-Use-C-Instead-of-C ]

        An anonymous reader writes "CodeSourcery's Mark Mitchell wrote to the GCC mailing list yesterday reporting that 'the GCC Steering Committee and the FSF have [ msg00705.html ] approved the use of C++ in GCC itself. Of course, there's no reason for us to use C++ features just because we can. The goal is a better compiler for users, not a C++ code base for its own sake.' Still undecided is what subset of C++ to use, as many contributors are experts in C, but novices in C++; there is a call for a volunteer to develop the C++ coding standards."

        Discuss this story at: [ 0245259 ]


      2010-05-27 Thu May 27 19:44 This date in 1959

      [ http://www.wired.com/thisdayintech/2010/05/0528cobol-conference/ ]

      2010-05-27 Thu May 27 17:16 Changed XLISP

      I've added a call to "srand" to initialize the random number generator to a different seed each time you run xlisp, at the request of a user.

      Note: In the 1980's C let you get away with almost contradictory declarations. But this is no longer allowed so I had to fix 101 lines of code just so I code add ONE FUNCTION CALL.

      2010-05-27 Thu May 27 15:33 My first Ruby Sample program

      Just test Q on [ a.rb ] and it worked:-)

      2010-05-18 Tue May 18 19:52 Spot the lambda

      [ http://www.skorks.com/2010/05/closures-a-simple-explanation-using-ruby/ ]

      2010-05-11 Tue May 11 15:41 Joke History of Programming Languages

      Do not believe anything on this site.... [ brief-incomplete-and-mostly-wrong.html ] (but laugh at it).

      2010-05-06 Thu May 6 16:05 News about LISP

      [ 224600240 ]

      2010-04-15 Thu Apr 15 14:51 Joke of the day

      [ http://xkcd.com/727/ ]

      2010-04-08 Thu Apr 8 14:26 What Language is most used today

      [ index.html ]

      Today you should prepare by studying chapter 1 [ 02.html ] and handing in your review questions + Answers.

      2010-01-22 Fri Jan 22 11:02 SIKULI -- one for the strange language club

      Saw this on SlashDot. A language that makes it easy to automate tasks by mixing Python like syntax with GUI elements. For example you can take a snapshot of a button on the screen and drag it into a script as an argument of a "click(_)", "wait(_)", "input(_)", etc. function. Here [ http://sikuli.csail.mit.edu/ ] is the link to the project site at MIT. The drag and drop feature is like the MIT Scratch language.

      2009-12-14 Mon Dec 14 12:39 MATLAB -- the accidental programing Language

      [Edwards09]

      2009-11-12 Thu Nov 12 14:16 Googles new language is called Go

      See Wired [ Meet_Go__Google_s_New_Programming_Language ] and [ http://golang.org/ ] by Google.

      2009-10-19 Mon Oct 19 15:36 Conversation with Language Creators

      [BiancuzziWarden09]

      2009-10-15 Thu Oct 15 14:07 FORTRAN Anniversary

      [ 1015fortran-launch ]

      2009-08-10 Mon Aug 10 11:02 Is COBOL Alive or Dead

      Short and to the point [Atwood09] but I think I could (1) improve his COBOL, and (2) produce elegant COBOL code that is downright ugly in any other language.

      Some entries redacted below

      2009-06-01 Mon Jun 1 12:56 Language Link of the day

      [ speed-size-and-dependability-of.html ]

      2009-05-28 Thu May 28 10:14 Another languages page

      An unknown Lisa sent me a link to [ random-programming-languages.html ] which has some information and links to sites on esoteric languages. However I don't think of FORTRAN as sophisticated... LISP perhaps:-)

      2009-05-26 Tue May 26 11:54 The Tao of Programming

      In the computer world we often express thoughts using HHOS -- Ho Ho Only Serious. Kyle sent me this [ tao-of-programming.html ] and it is funny, but there is also hard earned wisdom and some incomprehensible bits.

      By the way..... this just came in my EMail

    8. Tcl::= See http://www.computerworld.com.au/article/301772/-z_programming_languages_tcl

      2009-05-12 Tue May 12 14:44 The Language Erlang

      I've just updated my notes on a language called Erlang: [ ../samples/languages.html#Erlang ] (you don't need to learn anything about Erlang for this class but it is an interesting example of "functional" programming.

      2009-05-07 Thu May 7 16:01 Codepad for trying out languages

      Tim Eason sent me to [ http://codepad.org/ ] which has a dozen languages ready to be tried out. So far I've only spotted one error (in Scheme).... I'm "rbotting" on it.

      2009-05-06 Wed May 6 06:57 Plain English Programming

      Sao Thao pointed me to [ http://www.osmosian.com ] that claims to make programming in English a possibility. After a Google search for Osmosian I got the following data
      1. It looks legit.
      2. they were rather fanatical.
      3. no updates since 2006
      4. actually a mixture of Logo and HyperTalk (Apples scripting language for HyperCard).
      5. real programmers react very badly to it -- possibly bcuas thay kant spel :-)
      6. I like some of the ideas...
      7. If they are not careful they will get Cobol
      8. The nicer the window dressing, the less there is on sale:-)

      2009-04-20 Mon Apr 20 13:05 Interviews about Programming Languages

      This [ -z_programming_languages_falcon ] might provide some entertaining sidelights on some of the things we are doing in ths class.

      2009-04-17 Fri Apr 17 13:25 Philosphers and Programming Languages

      If you have ever wondered what programming language Aristotle used you could read [ if-philosophers-were-programmers.html ] to get one view....

      Personally I find C++ and Java highly Aristotlean....

      2009-04-08 Wed Apr 8 12:12 Groovy -- the new language

      [ http://groovy.codehaus.org/ ]

      2009-04-07 Tue Apr 7 12:32 Languages we want to avoid...

      [ esoteric.shtml ]

      2007-11-02 Fri Nov 2 14:11 History of Programming Languages Chart

      O'Reilly have done it again. A nice history chart [ prog_lang_poster.pdf ] (Big PDF).

      2007-08-21 Tue Aug 21 14:08 Updated Consumers guide to Languages

      See [ cars.html ] (Thanks David!) and compare with [ consumers.html ]

      2007-06-06 Wed Jun 6 10:06 Prolog fixes

      Last night in the lab I discovered that the machines in JBH359 have a shiny new SWI Prolog installed on them. It has a neat GUI help system..... And it understands more arrow keys. You can run it with the command
       		/usr/bin/pl
      (and so this is the default plthat you will normally get if you don't use Q).

      However they have moved the language closer to Quintus Prolog and Gnu Prolog. The first consequence is that if you want a prdicate to change as the program runs you must declare that it is dynamic before you actually place any predicates in the data base. SOme of my examples (4th.plg) didn't do this. So I've just editted them and reuploaded them.

      The other cosequence of the upgrade is that a rather usful predicate called select has changed its definition. I use it mainly to generate permutations:

       	perm([],[]).
       	perm(X,[Y|Z]):-select(X,Y,R),perm(R,Z).
      This works by selecting each element Y out of list X leaving the rest of the list in R. So select([1,2,3], Y, R) generates these alternatives:
      Table
      YR
      1[2,3]
      2[1,3]
      3[1,2]

      (Close Table)
      Now Quintus Prolog has a different definition with the parameters X and Y are in a different order:
       	perm([],[]).
       	perm(X,[Y|Z]):-select(Y,X,R),perm(R,Z).
      On the other hand they have permutation already defined so replacing the two line definition of perm by
       	perm(X,Y):-permutation(X,Y).
      is a quick fix.

      By the way... the /usr/bin/pl isn't on jbh3-1 the SSH server:-(

      I guess I'll have to add fixing this to my list of fun jobs for the summer.

      2007-04-23 Mon Apr 23 11:04 A Windows Version of Dia

      Andrew Murphy reccommends [ http://dia-installer.de/ ] , he write "I found a windows version of Dia (requires GTK 2.6) that runs pretty well and is great for groups that can't make it to the lab."

      2007-04-12 Thu Apr 12 11:04 Resource for learning HTML XML etc W3Schools

      Rigo gave me this [ http://w3schools.com/ ] and it looks (1) very useful, and (2) too detailed for CSCI320.

      2007-04-09 Mon Apr 9 13:04 Question about Ruby from CS320 Alumni

      The following cam in from Victor who took CS320 some years ago.
        I also had a quick (maybe) question for you about Ruby. I'd like to get a hold of a good Ruby compiler to install on a Linux machine. I don't have Admin privileges though, so I'm hoping to run it from my home directory. I need it for a program called Tioga which uses Ruby to install and plots Stellar evolution data in beautiful ways I haven't seen before using pdf and latex tools working together with Ruby I think. I read on the web "37 things I love about Ruby" and the programming language sounds too good to be true lol. I never heard of a "very-high level language (VHLL)" which it claims to be.

      Does any body know a good Ruby compiler/interpreter for users on a Linux system? Email me and I'll pass it on to Victor.

      By the way, another alumni of CSci320 contributed to [ phalanger-intro.asp ] an article on a .NET system for PHP called Phalanger. The Code Project website [ http://www.codeproject.com/ ] looks like a good resource if you are into developing software for the MicroSoft Platforms.

      2007-01-31 Wed Jan 31 15:01 Fortress and FORTRAN

      Fortress a big jump on Fortran [ 0,7204,21124560%5E15321%5E%5Enbv%5E,00.html ]
        Barbara Gengler JANUARY 30, 2007

        REMEMBER Fortran? Sun Microsystems is developing a follow-up programming language that may drive high-performance computing in the future.

        The prototype Fortress, released as open-source software, is intended to take the place of Fortran.

        Sun also released a series of draft specifications of the language and published formal calculi and soundness proofs of several of the core language features.


      2007-01-22 Mon Jan 22 14:01 Java and the Kitchen Sink Language

      This just in from the Assoc of Computing Machinary:
        Sun Microsystems has announced that it will open-source its new Java compiler, Javac, through a project known as the Kitchen Sink Language (KSL), which will allow programmers to play around with the language in hopes of obtaining data on which to base debates concerning the dynamic language. Javac lead tech Peter von der Ahe says, "I see a lot of proposal for enhancing the language and our team has to turn down most. So how can we experiment?" KSL, a Sun incubator project created by Java creator and Sun Fellow James Gosling, is a forum that will let programmers evaluate the language "by using [it] on their own code," rather than reading abstract specifications and proposals, according to von der Ahe. He understands the potential for chaos that KSL could bring to the language, so he explains that Sun must be "conservative" when evaluating features to implement. In a Jan. 8 blog post, Gosling said, "I've never been real happy with debates about language features. I'd much rather implement them and try them out." Though some took this to mean that Gosling did not like any debate on the subject, he clarified himself by explaining that he did not approve of debate when it was separated from "experiment and data," and that KSL will provide this type of scientific foundation for debating features.

      [ 0,1759,2081936,00.asp ] ( eWeek (01/15/07) Vol. 24, No. 2, P. 16; Taft, Darryl K.)

      2007-01-19 Fri Jan 19 09:01 Website runs your code -- BASIC Pascal Perl C++

      David Cumbow (CS320 last spring) sent me a link [ http://www.codeide.com/ ] to a web site that lets you input a piece of cade and compile/run it!

      Don't know how good it is.... but what a cool idea.

      Meanwhile, news of the language D

      [ 3652176 ]

      2006-12-20 Wed Dec 20 10:12 Modula and Ada in Dr. Dobbs

      Interesting: [ modula2_modula3.html;jsessionid=YCQUJCWU350MWQSNDLRCKH0CJUNN2JVN ] (Modula-2, Modula-3, Whatever. ) [ lets_hear_for_t.html ] (Let's hear it for Ada)

      2006-12-01 Fri Dec 1 13:12 Decline in Visual BASIC Questioned

      CSci320 is about different languages. New languages are being created all the time. And yesterday's "great" language starts to slide into museum status...

      [ 0,1895,2065392,00.asp ]

      I'll be starting renovating the cs320 web site ready for the Winter Quarter 2007 "Real Soon Now".

      2006-11-28 Tue Nov 28 13:11 Popular languages list

      From David Cumbow -- a 320 alumni:
        Thought you might like this for your 320 class. Also for our Senior Seminar so people can know what is out there and is popular...

        [ index.htm?tiobe_index ]


    . . . . . . . . . ( end of section CS320 High-Level Computer Languages Sping 2007) <<Contents | End>>

End