Mimir:Spring 2014 Erol Aygar Log


 * Home
 * Semesters
 * Spring 2014

Week Ending February 4th, 2014

 * Notes:


 * Comments:

Week Ending February 11, 2014

 * Notes:


 * Comments:

Week Ending February 18, 2014

 * Notes:

(1) I realized that it has been a while since the course started, however, no one (including me) created any content for the course site. Therefore, I choose to start writing on wiki to ignite collaboration.

(2) Furthermore, I am volunteering to document an issue register. Please email any project related risks or issues. We can collect them and put them in a register file and raise it before (or during) our class.

(3) Contacts: Please find my contacts below. You may contact me for any change or update reqests.
 * email: ea2003@wildcats.unh.edu
 * phone: *********


 * Comments:
 * Please write you comments here. Please also add your name with your comment.

Week Ending February 25, 2014
I will posting status reports here.

(1) I start reviewing two books about programming languages. If we can match the outlines, they have also useful information for note captures. I am trying to follow by our syllabus, and documenting their outlines. Anyone wants to see these books, please let me know. I will bring them to the class.
 * Notes:
 * Design Concepts in Programming Languages, Turbak, Gifford, 2008
 * Concepts in Programming Languages, Mitchell J.C, 2003
 * I also borrowed a book from Dr. Jonas. I will bring it back this week.

(2) I read 1st week notes. Thanks to Casey and Pauline. I copying them as pdf files from them. This format makes easier to understand.

(3) Outline of our text book. We need to meet more frequently. I realized that as graduate students we are meeting; however we need to find a way to share our findings with all class.


 * Comments:

Week Ending March 4, 2014
(1) The following books about programming languages are really supportive to understand the value of the functional programming languages. Furthermore, I believe they will be used as complementary readings (to our syllabus) that will provide a better understanding of the mechanisms behind such languages.
 * Notes:

During this week, while I was trying to do the homework, I had chance to read some chapters from these books and want to share my readings, and my afterthought about these readings.
 * Design Concepts in Programming Languages, Turbak, Gifford, 2008', Chapter 2.4 Functional Programming Lisp (p49-54); Chapter 15 Functional Programming Languages (p 654-696)

The history of Lisp and its dialects, the chronological efforts behind the evolutions the value of such languages for future technological development are well scrutinized. These pages describes Lisp as the first functional Programming Language, than the author introduces some dialects of lisp. Furthermore, he summarizes other functional programming languages, such as Common Lisp, Scheme, ML and Haskell. Author also offers the comparison between imperative and functional languages. - In these chapters it's also provided that the the idea behind lisp and the reasons and needs that triggered the birth of those languages. After these readings I see getting apparent for me to understand the relationship between simple functions, mathematical functions, lambda expressions--they are really well scrutinized. Data types and their illustrations are also worthwhile to read. The author provided a side to side introductory comparison of Lisp, Scheme, Haskel in terms of --origins, interpretation, primitive numeric functions, function definitions and forms, control flows, symbolic atoms and lists--and described their evolution. Also its great to read recursion and tail recursion from these chapter.

(2) Thanks to Note Capturer's efforts. As time passes, the value of these captures gets apparent. - It was confusing for me to follow the content from the wiki pages. I was reformatting and saving the pages as pdf files and reading them as separate pages. However I find a better way this week: a button on Safari web browser: Reader view--its great and you can read the page like a book. It might be so primitive, anyways I want to share my late but really practical finding.

(3) Outline of our text book. We start meeting frequently, I think its getting more clear every week--we are worming up, and after the break we will start citing. A discussion started after our meeting and every member start sharing their contributions on the wiki site. We also meet with or team.


 * Comments:

(2) - about the Reader View button - that's great(!!!); There were so many times I had troubles reading a web page, as the content font is too small/large; I was thinking about personalizing my browser somehow, but this option seems the way to go - thanks for sharing! --Sgm10 (talk) 04:08, 22 March 2014 (PDT)

Week Ending March 18, 2014
(1) I realized that it is really hard to switch from an imperative to functional programming realm. During the class Dr. Jonas explained how our CLISP implementation should yield us the functional experience. I will re-write my last response in the homework about functional programming perspective. I also gained some takeaways about the importance of learning languages (including programming languages): This week we had an assignment on Ruby, and while we were talking with Prof. Richard Greene about the difference between Lisp and imperative languages he underlined the value of being multi-lingual. He also reminded Whorfian Hypothesis[] which can be summarized like Prof. Greene did: "The language we speak influences on thinking. When you are multi-lingual, you are smarter than a mono-lingual person because you can see the world several different ways."
 * Notes:

(2) What makes a language fully functional, or what usage results a breach the rules from of functional programming language? I think the answer is not simple in first glance. Finally, I learned!

(3) Takeaway: Don't persistently try to install CLISP on Mac OSX, ask some help if you feel stuck.

You can also download the code and compile it--it is a little bit time consuming, but it is working, gcc.

Prepare the environment first, download and install from http://www.clisp.org version should be 2.49

The version can be checked by the following command from the terminal window: % clisp --version => version 2.49

I think it is not a good idea to code in the terminal, rather save code in a file and execute it by using the following command : clisp filename.lsp

if your installed correctly, it should yield results.

(4) functions return values!

(5) I want to the cite some books, articles, websites that I skimmed throught my homework.

''1. Common Lisp: A Gentle Introduction to Symbolic Computation http://www.cs.cmu.edu/~dst/LispBook/book.pdf

2. https://www.cs.unm.edu/~luger/ai-final2/LISP/

3. http://en.wikipedia.org/wiki/Functional_programming

4. http://www.risc.jku.at/education/courses/ws2012/logic-1/reverse.pdf

5. http://www.gigamonkeys.com/book/they-called-it-lisp-for-a-reason-list-processing.html

6. http://cl-cookbook.sourceforge.net/strings.html

7. http://alfredodinapoli.wordpress.com/tag/search-sublist-lisp/

8. http://www.jtra.cz/stuff/lisp/sclr/index.html'' ''

(6) We also "start from Scratch"--like Dr. Jonas told:) During the lab session Dr. Jonas introduced the visual programming by demonstrating coding. I got the screenshot of the last lab. I tried to upload as a link or a file, but cannot succeeded to do so. Let me know if you need them.

(7) I want to share one more (and final) reading from the following book : Design Concepts in Programming Languages, Turbak and Gifford. Following chapters are great support for understanding the concepts of recursion and lambda notation. The authors introduces another functional language called FL.

''A.2.7. Recursion (p1170) and A.2.8. Lambda Notation is NOT Lisp! (p 1169)''


 * Comments:

Week Ending March 25, 2014

 * Notes:
 * Worked on Scratch assignment.
 * Started reviewing previous lecture notes.
 * Lisp book arrived. ISBN-13: 978-0201083194. Dr. Jonas recommended this book. It's amazing to have these sort of resources around $6. (Used, amazon)
 * Reviewed lisp assignment.
 * Reviewed BNF grammar for the 1st assignment
 * Lecture captured


 * Comments:
 * I was reading my previous comments and want to share that we worked a few times with Daniel and these books are really helping. He borrowed the lisp book, and worked on this book a couple of weeks.
 * Again, it's great to reach these resource so easily.--Ea2003 (talk) 16:51, 11 May 2014 (PDT)

Week Ending April 1, 2014

 * Notes:


 * Comments:

Week Ending April 8, 2014

 * Notes:


 * Concentrated on the Scratch homework (myRiverRaid)
 * Reviewing Java skills for the next assignment.
 * Continue readings
 * Outlined Week 11 notes


 * Comments:

Week Ending April 15, 2014

 * Notes:


 * We worked on the poster.
 * continue reviewing the previous class notes
 * worked on the Java assignment - Tokinizer
 * Researched the following topic, and try to review the mathematical symbols: "Chomskys Hierarchy, Context Free vs Context Sensitive"
 * I got my Concrete Math(discrete+continuos) Book written by Knuth, I can't wait to finish this semester to study the depth math skills and get ready for the next semester


 * Comments:

Week Ending April 22, 2014

 * Notes:


 * I've started to review the classes for the exam.
 * Concentrated on the tokinizer homework
 * Worked on bnf grammar
 * I met with Daniel and Gabriel a few times to work together.


 * Comments:

Week Ending April 29, 2014

 * Notes:
 * Concentrated on the SQRL assignment, glad to understand "strait-forward" nature of the parsing. At first, I couldn't decide whether to parse the following subsequent statement--after if statement, when the condition is false--, or to skip the statement till the end of the line. However, after a short conversion with Dr. Jonas, I got my answers, and more importantly the idea. Finally, I implemented another method which parses, however does not perform any operation within the scope of the subsequent statement. (if 1 = 0 if 1 = 2 print 10 case) Perhaps there might be more intelligent designs exits out there, however I succeeded to parse this input strings. I don't have chance to get the feedback from Prof. Jonas, however I decided to ask his opinion after the exam.
 * I highly recommend using Java IDE (i.e. Netbeans, Eclipse ) to implement the SQRL language. Thus, you can enjoy benefits of debugging!. And I think that simplest version of those IDE's are enough, don't get attracted to the bundles, just use Java SE. Again, this is recommendation.


 * I started drafting my first language -- myLang (not creative, but descriptive and convenient)


 * Comments:

Week Ending May 6, 2014

 * Notes:
 * I am still trying to heal the wounds of the exam.
 * Finishing other course assignments to concentrate the lex and yacc
 * Studying lex and yacc notes from wiki page, and dinosaur.compilertools.net[dinosaur.compilertools.net] website.
 * Planning to start Mimir textbook editing this week.


 * Comments: