djd
Home Page of Dennis J. Darland's Software Projects
Email: Mail To: pal at dennisdarland dot com
Programmer At Large
Comments welcome.
For other things I'm doing see my home page.
Computer Languages I have available to me.
Some of the other software I have available to me.
Handy porting info
As of 6/1/2014 this needs extensive revision.
I have Changed Linux OS's

MY SOFTWARE PROJECTS

  1. Work on my (Dennis J. Darland's) Philosophy of Language (in SwiProlog and WildLIFE)
  2. My Work in Ruby
  3. My Port of the Language WildLIFE (wild_life) to Linux and Cygwin (similar to Prolog)
    Logic, Inheritance, Functions, and Equations.
  4. The Computer Language Bertrand
  5. The Computer Language Russell
  6. The Computer Language Russell2 - Just an Idea so far
  7. My Health Data Analysis Software
  8. My Time Tracking Software
  9. Checking Proofs in Principia Mathematica
  10. Work in Java
  1. Work on my philosophy of language in Prolog and WildLIFE
    1. Source and Output of Latest Version 01.23 of DarlandPhilosophy (2/17/2017)
      01.21 Added find_all predicate and used it on several queries to get all results in those cases.
      01.22 Went over case within variables - improved punctuation & added test case for pl_ambiguity_1. 01.23 Added info related to Frege
    2. The Philosophy of Dennis J. Darland
      Full Download, etc. Available on SourceForge
    3. Tutorials on Prolog (not done by me - but may help some to understand my philosophy).
      1. Introduction to Prolog
      2. Youtube tutorial on Prolog - different version than I Use - But has useful information.
        This video is also useful in showing how to install cygwin under Windows.
      3. More Youtube - Programming in Prolog Part 1.
      4. More Youtube - Programming in Prolog Part 2.
      5. More Youtube - Programming in Prolog Part 3.
      6. More Youtube - Programming in Prolog Part 4.
      7. There are a great deal more videos that can be found on Youtube!!
      8. Learn Prolog Now
      9. J. R. Fisher Tutorial on Prolog
      10. SwiProlog (which I used) Manual
    4. My plans for this project
      1. Add remarks explaining my code - naming conventions, purposes of predicates, etc.
      2. Add philosophical quotations.
      3. I will selectively re-read portions of these books.
      4. I will be looking for agreement or disagreement and try to provide explanations.
    5. A Bibliography of Books Used in My Philosophy of Language
      1. Bibliography for this project
      2. Also bibliography of almost all of my books
        Note: Books are arranged by 1st letter of author's last name - click letter across top.
  2. Work in Ruby.
    1. My Arbitrary Precision Floating Point (APFP) Library and Rails Calculators
    2. My Systems of Differential Equations Solver (using Long Taylor Series)
  3. Port of wild_life to 64 bit Linux and Cygwin
    1. Starting point Wildife 1.02 as I received it in 1990's and Porting Notes
      1. Life-1.02.tar.gz
      2. Also located port I had done to OS2 in 1990's
      3. I find it better to dive in & be prepared to redo everything when needed.
      4. It is better to learn from mistakes than try to be perfect the first time. (And a lot faster.)
      5. Main points of Port
        1. Changed from varargs to stdargs. (I ended up finding good documentation on stdargs on the Web.)
        2. Added proper prototypes.
          This was a great deal of editing.
          Initially, I made mistakes.
          Eventually I made a header file with all prototypes.
          I used function definitions to determine prototypes.
        3. Cast arguments accordingly.
        4. Replaced compare function pointers as arguments with longs indicating sort of compare (for find and inserts).
          I made mistakes in this initially (in the compare functions as I did not initially understand some of the reasoning)
          I reverted to how the functions originally worked - but still specify the function with a long rather than a function pointer.
          (Due to difference in function pointer types)
        5. Placed struct definitions in one header file.
        6. Placed constant defines in one header file.
        7. Placed macro defines in one header file.
        8. Eliminated enums (I am not used to them - one of my bosses in the past disliked them (not as much as unions - he was from Georgia)).
        9. I'm working on documenting the c code with doxygen.
    2. Copyright Info
      1. Copyright (C) Digital Equipment Corporation 1994
        This work may not be copied or reproduced in whole or in part or for any commercial purpose. Permission
        to copy in whole or in part without payment of fee is granted for non-profit educational and research
        purposes provided that all such whole or partial copies include the following: a notice that such copying
        is by permission of the Paris Research Laboratory of Digital Equipment Centre Technique Europe, in
        Rueil-Malmaison, France; an acknowledgement of the authors and individual contributors to the work;
        and all applicable portions of the copyright notice. Copying, reproducing, or republishing for any other
        purpose shall require a license with payment of fee to the Paris Research Laboratory. All rights reserved.
      2. I have been informed that DEC was bought by Compaq in 1998.
      3. And that Compaq was bought by HP in 2002.
    3. I am only using it for non-profit research purposes.
    4. Wild Life and Related Bibliography that I have
      1. Aït-Kaci, Hassan; and Nasr, Roger; Logic and Inheritance. POPL'86. Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of Programming Languages, pp. 219-234, ACM. 1986.
      2. Aït-Kaci, Hassan; Nasr, Roger; and Seo, Jungyun, BABEL: A Base for an Experimental Library. SIGR'88. Proceedings of the 12th Annual International ACM Conference on Research and Development in Information Retrieval. pp. 175-190. ACM. 1988.
      3. Aït-Kaci, Hassan; Boyer, Robert; Lincoln, Patrick; and Nasr, Roger, Efficient Implementation of Lattice Operations. ACM Transactions on Programming Languages and Systems, Vol. 11, No. 1, January 1989, pp. 115-146. ACM. 1989.
      4. Aït-Kaci, Hassan, Warren's Abstract Machine: A Tutorial Reconstruction. The MIT Press. 1991.
      5. Aït-Kaci, Hassan; and Podelski, Andreas, Towards a Meaning of Life. digital - Paris Research Laboratory. June 1991.
      6. Aït-Kaci, Hassan; and Podelski, Andreas, Towards a Meaning of Life. J. Logic Prgramming. 1993:16., pp. 195-234.
      7. Aït-Kaci, Hassan. Programming with LIFE tutorial slides of ILPS’93 invited talk
      8. Aït-Kaci, Hassan; Dumant, Bruno; Meyer, Richard; Podelski, Andreas; and Van Roy, Peter; The Wild Life Handbook (prepublication edition). 1994
      9. Aït-Kaci, Hassan; and Podelski, Andreas Functions as Passive Constraints in LIFE. ACM Transactions on Programming Languages and Systems, Vol. 16, No. 4, July 1994, pp. 1279-1318. ACM. 1994
      10. Aït-Kaci, Hassan. Data models as constraint systems: a key to the semantic web Constraint Programming Letters 1 (2007) 33–88.
      11. Aït-Kaci, Hassan. DL vs OSFa short (6 mins) video explaining the gist of of how Description Logic reasoning and Order-Sorted Feature constraint processing relate. 2007.
      12. Aït-Kaci, Hassan. Description Logic vs. Order-Sorted Feature Logic June 2007.
      13. Aït-Kaci, Hassan. The Essence of LIFE for the Semantic Web March 25, 2012.
      14. Aït-Kaci, Hassan. A Simple LIFE Su Doku Solver
      15. Clocksin, W. F.; and Mellish, C. S., Programming in Prolog. Springer-Verlag. 1984.
      16. Garrigue, Jacques; and Aït-Kaci, Hassan The Typed Polymorphic Label-Selective lambda-Calculus. POPL'94. Proceedings of the 21st ACM Symposium on Principles of Programming Languages, pp. 35-47, ACM. 1994.
      17. Covington, Michael A.; Nute, Donald; and Vellino, Andre, Prolog Programming in Depth. Scott, Foresman and Company. 1988.
      18. Jensen, Kurt; and Podelski, Andreas, Tools and Algorithms for the Construction and Analysis of Systems. Springer. 2004.
      19. Podelski, Andreas (Ed.) Constraint Programming: Basics and Trends. Springer [1994].
      20. Rowe, Neil C., Artificial Intelligence Through Prolog. Prentice Hall. 1988.
      21. Sterling, Leon; and Shapiro, Ehud, The Art of Prolog: Advanced Programming Techniques. The MIT Press. 1986.
      22. Van Roy, Peter; and Haridi, Seif, Concepts, Techniques, and Models of Computer Programming. The MIT Press. 2004.
      23. Wielemaker, Jan, et. al. SWI Prolog Reference Manual 6.6.6 University of Amsterdam. 2014.
      24. Wielemaker, Jan, et. al. SWI Prolog Reference Manual 7.1 University of Amsterdam. 2014.
      25. Wikipedia, Wikipedia article on Prolog
    5. Life Documentation:
      1. Life Handbook
      2. Life Toolkit
      3. Context 1
      4. Context 2
      5. Context 3
      6. Context def
      7. Dumant
      8. Meyer
      9. Van Roy
      10. c_life
      11. Debug
      12. Parser
      13. Profiler
      14. Shell
      15. Sys
      16. Tokenizer
    6. Wild_life 2.33
      Life-2.33.tar.gz 3/4/2017.
      Fixed abend which occurred when there was an extra ',' in an argument list - now it exits instead of abending.
      X Windows is not enabled in this version.
      WildLife Release 2.32 Installation Video (less than 6 minutes)[nothing has essentially changed since 2.32]
      Note: I forgot to say there must be a ~/bin directory for the executable.
      Also I remembered to change the Version number.
      Youtube tutorial (not mine) on Prolog - contains info on how to install cygwin under Windows.
      Also, I cannot say exactly what needs to be installed under cygwin, but I remember the c shell is something I had to add to my cygwin installation.
      Installation Directions Text File
    7. Wild_life 2.32
      Life-2.32.tar.gz 2/1/2017.
      I made a small cosmetic fix.
      X Windows is not enabled in this version.
      WildLife Release 2.32 Installation Video (less than 6 minutes)
      Note: I forgot to say there must be a ~/bin directory for the executable.
      Also I forgot to change the Version number - but the only change in the release in no way affected the executable.
      I only deleted 2 lines in a shell script.
      Youtube tutorial (not mine) on Prolog - contains info on how to install cygwin under Windows.
      Also, I cannot say exactly what needs to be installed under cygwin, but I remember the c shell is something I had to add to my cygwin installation.
      Installation Directions Text File
    8. Wild_life 2.31
      Life-2.31.tar.gz 1/30/2017.
      I mainly removed accumulated garbage.
      X Windows is not enabled in this version.
      This is the closest to a production version that I have.
      Installation Directions
    9. Wild_life 2.30.07
      Life-2.30.07.tar.gz 12/22/2016.
      There were function headers in xpred.c that were unlike c code I have been familiar with.
      I had been suspicious of them for some time, but the code (mysteriously) would compile.
      For the functions list_is_nil, list_cdr, and list_car. After examination, I changed them
      to what appears to me to be correct. I also changed the def_proto.h file to correspond.
      Also, in this release, X Windows is enabled.
      The change had no effect on the Test Suite, or segmentation fault I get testing X Windows.
      You may be able to show a program to be incorrect with testing, but you cannot show it to be correct with testing.
      (12/22/2016) I have done some work further documenting of files in Life 2.30.07 doxygen generated documentation
    10. Wild_life 2.30.06
      Life-2.30.06.tar.gz 12/22/2016.
      I had done a little more documenting.
      Then tested in cygwin. Discovered I needed to move def_config.h higher in defs.h. Above ifdef NORAW.
      Then discovered I had not updated Version number in Makefile - fixed that also.
      Also I noticed I included html in tar.gz - it does not hurt anything.
      Also, I have write protected older versions which are only there for comparison purposes.
      I believe there is a -R (recursive) option to chmod which can modify attributes, so they can be deleted if desired.
      Also the Makefile does not check all dependencies.
      Compiling is very fast - the 111 option in the "ee" script deletes all ".o" files - so it should be used.
    11. Wild_life 2.30.04
      Life-2.30.04.tar.gz 12/17/2016.
      Changes for doxygen documentation tool - all .c files with minimum changes completed - started on .h files.
      defs.h, def_config.h, and def_const.h mostly completed. Much work on def_glob.h.
      Modified to use def_config.h for defines formerly in Makefile.
      Some changes, beyond comments, were required.
    12. Wild_life 2.30.03
      Life-2.30.03.tar.gz 12/15/2016.
      Changes for doxygen documentation tool - all .c files with minimum changes completed - started on .h files.
      defs.h, def_config.h, and def_const.h mostly completed.
      Modified to use def_config.h for defines formerly in Makefile.
      Some changes, beyond comments, were required.
    13. Wild_life 2.30.02
      Life-2.30.02.tar.gz 12/12/2016.
      Changes for doxygen documentation tool - all .c files with minimum changes completed - started on .h files.
      Modified to use def_config.h for defines formerly in Makefile.
      Some changes, beyond comments, were required.
    14. Wild_life 2.30.01
      Life-2.30.01.tar.gz 12/12/2016.
      Changes for doxygen documentation tool - all .c files with minimum changes completed.
      Modified to use def_config.h for defines formerly in Makefile.
      Quite a bit extra work for x windows files source resulting from modification to function headers.
      Still got segmentation fault when I tried to use x windows/
      Fixed warnings etc. in DOXY.LOG.txt
      Next are minimum changes to .h files
      Have created 2.30 from 2.29.04
      Some changes, beyond comments, were required.
      Function headers had to be changed to newer c style.
      Also, in some cases (I think only static functions (which had previously no prototypes) with parameters) casts had to be added where the functions were called.
    15. Wild_life 2.29.04
      Life-2.29.04.tar.gz 12/12/2016.
      Changes for doxygen documentation tool - all .c files with minimum changes completed.
      Modified to use def_config.h for defines formerly in Makefile.
      Quite a bit extra work for x windows files source resulting from modification to function headers.
      Still got segmentation fault when I tried to use x windows/
      Next thing to do is fix warnings etc. in DOXY.LOG.txt
      Have created 2.30 from 2.29.04
      Some changes, beyond comments, were required.
      Function headers had to be changed to newer c style.
      Also, in some cases (I think only static functions (which had previously no prototypes) with parameters) casts had to be added where the functions were called.
    16. Wild_life 2.29.03
      Life-2.29.03.tar.gz 12/11/2016.
      Changes for doxygen documentation tool - most .c files with minimum changes completed.
      Some changes, beyond comments, were required.
      Function headers had to be changed to newer c style.
      Also, in some cases (I think only static functions (which had previously no prototypes) with parameters) casts had to be added where the functions were called.
    17. Wild_life 2.29.02
      Life-2.29.02.tar.gz 12/8/2016.
      Changes for doxygen documentation tool - about half of files with minimum changes completed.
      Some changes, beyond comments, were required.
      Function headers had to be changed to newer c style.
      Also, in some cases (I think only static functions (which had previously no prototypes) with parameters) casts had to be added where the functions were called.
    18. Wild_life 2.28
      Life-2.28.tar.gz 10/24/2016.
      I discovered that I had not deleted the regexp/*.o files before creating the archive - this caused problems especially with cygwin.
      Read the INSTALL file. Also there was a file .c that I had trouble deleting but finally figured out (from the web).
      rm -rf directory/.* deletes all . files except . and .. in a directory (which it gives errors on). I still don't know how to get just one.
      Cygwin gives an error creating a .setup file during the make - it can be safely ignored.
      I had already created the archive - it takes a lot of time copying everything & re-testing.
      I have started to document WildLife using Doxygen. I have started in a directory named 2.29 initially (now) identical with 2.28.
      This is mainly modifying comments, but also involves using newer style function declarations.
    19. Wild_life 2.26
      Life-2.26.tar.gz 8/11/2016.
      In addition to what was noted for 2.25 below, I have improved the code using the free splint tool
      See my notes for details.
      10/11/2016. I had note previously tested 2.26 under SUSE & cygwin. Did so last night. SUSE was fine. Had linking error in cygwin. Took a few hours to solve. I had forgot to delete .o files in regexp subdirectory & they appeared up to date to make. Also, for some reason main Makefile does not run rexexp Makefile in cygwin although it does in Linux. Also need to know from environment what suffix to use (copying to ~/bin). No code needed to be changed. There were 3 of the test suite that did not match perfectly (I think just cosmetic).
    20. Wild_life 2.25
      Working on my philosophy and learning Life better. - No release yet.
      Also restored preparser.lf to LF subdirectory of Tests directory (from Tests directory).
      It still crashed.
      I changed \ to \\ on line 453 - then it worked correctly.
      I had made same change in SuperLint.
    21. Wild_life 2.24
      Life-2.24.tar.gz 7/14/2016.
      I've done all I know on the X11
      Getting a (Badname) font or color not found.
      The x setup files in .set_up seem to load OK.
      I changed font from "long" to "Font" in x_record_string in xdisplaylist.c -- no apparent effect.
      There is one file in the Test Suite that fails. There were two others I "approved" changes to.
    22. Wild_life 2.23
      Life-2.23.tar.gz 7/14/2016.
      Everything (non-X11) is working perfectly in the Test Suite under 64 bit Ubuntu
      I have not started on X11 interface port again yet - I thought it best to make sure rest worked correctly first.
      There are 3 with cosmetic differences in 64 bit cygwin
      There are 3 with differences in 32 bit Ubuntu - I have not investigated
      See my notes
      Of note is that I found enum's passed as pointers (ptr_definition).
      I turned them into define's and found other conflicts with the names.
      Casts were required but should be OK.
      This required extensive, but routine, editing.
      I've barely started on my philosophy - But I have everything I need.
      Even though I don't need it for my philosophy I will be starting a 2.24 for X11
      Also Install directions
    23. Wild_life 2.22
      Life-2.22.tar.gz 7/10/2016.
      Changes:
      ===================================================================== 7/72016-7/10/2016 Extensive editing

      Created prototypes for all (non-static) functions - from 1.02 .c files.
      Corrected all errors & warning - except x - I removed X11 define from makefile temporarily.
      Ran Test Suite - 2 matched.
      Ran on pitch & realized I had trace turned on in .set_up
      Tuened off. 8 matched.
      Knew I had added & in fileptr2stream calls because of type discrepancy.
      Removed them. 351 matched.
      Then removed * from typ in fileptr2stream (also prototype).
      Still 351 match - but warnings gone.
      ----------------------------------------------------------------------
      Will only note differences I remember.
      08-23 now works - approved.
      one other approved - stats slightly different otherwise same - now 353
      Noticed gc trace on (memory.c) - now 378 match
      babcode - data slightly different appears to work correctly - now 379
      extest - I get wrong output
      djd-pitch - no longer get gc error
      -----------------------------------------------------------------------
      7/9/2016
      tweaked c_system in bi_sys,c
      08-29 now approved.
      children approved - just differences in system definition
      ------------------------------------------------------------------------------
      I was concerned about changes I made in gamma_table (a few years ago).
      I revised memory.c & types.c so they could include either version (basically original logic or my revised logic from a few years ago)
      Either can be selected by a define in "def_const.h"
      I expected the original logic to crash - as it had before.
      But instead (with a little more work)
      413 total tests.
      396 match
      17 differ
      17 differ on stdout
      3 differ on stderr
      -----------------------------------------
      _______Tests I Created____________________
      1 aaa-00-complex-module I was experimenting - I probably am doing something wrong.
      2 aaa-00-quote_2 Same as a later test trouble with globals & quote. I think I succeeded with quotes elsewhere.
      ______ Tests from Life Handbook ___________
      3. aaa-08-14 Slightly different but possibly equivalent output.
      4. aaa-09-04 problem with persistent
      5. aaa-09-06 *** Error: cannot unify persistent values
      6. aaa-09-07 really same as #2 above.
      7. aaa-10-01 *** Error: 'prison(door => guarded)' is not a predicate or a function.
      ______Tests from Original Test Suite ______
      8. another_bug - I have not tried to examine.
      9. clause - same output in different order
      10. debug - looks like same output except clause #'s reversed
      11. libtest - seems man entries missing - problem with import?
      12. long - problem with listing
      13. matix - differs - too large to examine.
      14. print2 - some 0's replaced by blanks in large negative numbers.
      15. test02 - difference in listall?
      16. testsl - syntax error in superlint
      17. t - I don't understand
      ========================================================================================
      Then I added the X functionality.
      I got 3 less matches - have not taken time to identify.
      I got missing font or color message.
      Disabled X11 again temporally in Makefile.
      Note: not all dependencies are in Makefile.
      I use option 111 in ./ee script (it deletes all *.o files)
      Also with X11 enabled I had 3 fewer matches.
      I then made Life-2.22.tar.gz file & copied to 64 bit cygwin.
      I got some compiler warnings I had not in Linux, but it linked OK.
      I think I failed to create a few new prototypes.
      I ran Test Suite - 5 fewer matches in cygwin.
      Also there are compiler warnings on x*.c files (in Linux) I have not got to yet.
    24. Wild_life 2.21
      Changes:
      1. Fixed problems in print.c related to comparisons. I think I have it right now.
      2. Restored "|| level > 0" in login.c - This made output match in reference data much better, so I restored it, but do not understand it.
      3. Changed remaining int's in structures to long's.
      Life-2.21.tar.gz 7/6/2016.
      As 2.21 was released the Test Suite results were:
      After the print.c corrections, the output looked much more like that of the original reference data.
      I restored all the reference data in LF, IN, REFDIFF. REFERR, from the original 1.02 - to the directories I use.
      The cases I had added were unaffected, as there were no files of same name in original data.
      After the fixes & restoration, I went through the Test Suite again. Results summarized below>
      As I approved some, there are notes on more than still differ.
      There are some characters in the notes that should be expressed differently in html, but I'm tired, & they seem to appear OK.
      413 Total Tests
      377 Matched Perfectly
      36 Differed at all
      35 Differed on stdout
      4 Diffrred on stderr

      ====================================================================================================================================
      1. aaa-00-complex-module (I made up) - module,public,open,display_modules
      2. aaa-00-quote_2 (I made up) - global, '---',assert,listing (like aaa-09-07)
      3. aaa-06-03 - Wrong value
      4. aaa-07-06 - does not trace
      5. aaa-07-07 - does not trace
      6. aaa-08-14 - things swapped - may be OK
      7. aaa-08-23 - does not write self
      8. aaa-08-29 - wrong error code when system() fails
      9. aaa-09-04 - persistent
      10. aaa-09-06 - *** Error: cannot unify persistent values
      11. aaa-09-07 - cannot quote global (I think can quote non-global)
      12. aaa-10-01 - module, publc, private_feature, open, display_modules
      13. another-bug - did not investigate
      14. babcode - different number of sorts - looks similar otherwise
      15. children - bytedata missing (also some other - because not "raw"?)'
      16. clause - different - no not understand
      17. debug - clause #'s reversed
      18. dupfeat - line numbers not in error - I approved anyway (stdin?)
      19. extest - examples not imported? path?
      20. factorize - slightly different output
      21. glob_test2 - *** Error: cannot unify persistent values
      22. intlist - different output
      23. inttrace - trace missing
      24. lazy - different output - delay_check
      25. libtest - reference has \'s missing as:
        Mine match entries in Lib/structures.lf
      26. listing1 - could see no difference - approved
      27. long - different - don't see what's going on
      28. manual4 - get error - using dynamic *** Error: 'foo' is not a predicate or a function.
        -- same error in reference. - approved.
        mine in addition has
        *** END Abort
        at end
      29. manual8 - no trace
      30. matrix - very complicated - saw ",," in my result at end not in reference
      31. module_test2 - both give error - same as manual4 - approved
        mine in addition has
        *** END Abort
        at end
      32. nofour - got a 4
      33. pers2 - got
        same as ref + *** END Abort
        approved
      34. posint - looks like both are wrong to me - not approved
      35. prime - looks like mine correct - reference lists a lot of non-primes
      36. print2 - refdiff shows stuff in neither file - not approved
      37. soap - different not approved
      38. subsort - different not approved
      39. 8101 - both out of memory - mine gives *** END Abort -- approved
      40. 8104 - Mine gives Infinity & NaN instead of inf & nan --- approved
      41. 8105 - Reference gives OUt OF MEMORY - mine nothing -- not approved
      42. test03 - a bunch of things are no longer undefined -- not approved should it be????
      43. testsl - I get Syntax error in SuperLint
      44. t - now there are more sorts - probably OK but not approved
      ====================================================================================================================================
    25. Wild_life 2.20 - Fix to 2 message functions. Working on philosophy model. Problem, it seems, with "apply".
      Next version released is 21
      Only changes to c code - moved va_end down one "}" in warningline and Syntaxerrorline in error.c
      I've done some on my philosophy and seem to be having trouble with "apply".
    26. Wild_life 2.19 Major fixes to comparison functions (again), major reorganization of header files, and revision of stdarg.h usage.
      July 4, 2016
      Life-2.19.tar.gz 7/4/2016. You can do about any development activity with the script "./ee" in the Life-2.19/Source Directory.
      You can compare to read only copies of what I originally received (1.02), or the last released version (2.16) before I reorganized the header files.
      You can edit, compile (make), and run the Test Suite, or run wild_life interactively.
      WARNING - this is a port that still does NOT function altogether correctly.
      About 2/3 of the over 400 tests seem to pass, but I have not even had time to examine them all.
      And some differences may be cosmetic, or due to errors in the reference output.
      I plan on working on my own Life programs, as becoming more familiar is necessary for debugging, as well as my purpose with the language.
      As 2.19 was released the Test Suite results were:
      413 Total Tests
      279 Matched Perfectly
      134 Differed
      132 Differed on stdout
      12 Diffrred on stderr

      I'm going back to testing.
    27. Wildlife 2.19 - Major fixes to comparison functions (turned out wrong) July 1, 2016
      Life-2.16.tar.gz 7/1/2016 - I redid how some of the casting is done - that seemed to have no effect. But I discovered that in work I did a few years ago, I had made a bunch of mistakes. Originally is some places a function had been passed for comparisons. The typing rules did not permit that - so I had passed an long to indicate the function to use. It was a good idea but I made some mistakes doing it - I think they are now corrected.
      As 2.16 was released the Test Suite results were:
      412 Total Tests
      257 Matched Perfectly
      157 Differed
      152 Differed on stdout
      12 Diffrred on stderr

      I'm going back to testing.
    28. Wild_life 2.15 June 30, 2016
      Life-2.15.tar.gz 6/30/2016 - I had analyzed the gamma table logic very carefully a few years ago and significantly changed it , but I tried restoring it to the original tonight - but that resulted in memory problems. I also had made another change in memory.c earlier this month that I was more concerned with I had removed it before trying gamma table test and when I restored the gamma table, I restored the other (bad) change. Anyway, 2.15 has my gamma table fix, but not the other which I accidentally left in 2.14.

      As 2.15 was released the Test Suite results were:
      412 Total Tests
      257 Matched Perfectly
      155 Differed
      152 Differed on stdout
      13 Diffrred on stderr
    29. Wild_life 2.14 June 30, 2016
      Life-2.14.tar.gz 6/30/2016 - Mainly I have added scripts to edit any .h or .c next to the original file as I received it in 1.02. Also ability to run diff on the two and view the results. You can access these scripts from the main script ee. The $LIFE-ORIG variable needs to be set to where Life-1.02 is unpacked - I made it read only.
      I made only one change in .c code. I had restored code in built_ins.c (in unify_bool_result), which was commented out as I received it. I have re-commented it out. I saw no effect.
      Mainly, I have been studying the wild_life language, writing small programs using features I do not fully understand.

      As 2.14 was released the Test Suite results were:
      412 Total Tests
      265 Matched Perfectly
      147 Differed
      143 Differed on stdout
      13 Diffrred on stderr
    30. Wild_life 2.13 June 28, 2016
      Life-2.13.tar.gz 6/29/2016 - I reverted the .set_up and related files to what I received in 1.02. I am just becoming familiar enough to touch them. I may have fouled them up in the past. Also I now placed them under ~/life_local . I have not made any changes to the c code except via the Makefile for the paths.
      I will used Life-2.12 to start Life-2.13. I plan to investigate why, in some cases, wild_life seems to be evaluating arguments when it should not be.
      I have also updated the INSTALL file with everything I could think of.
      As 2.13 was released the Test Suite results were:
      410 Total Tests
      263 Matched Perfectly
      147 Differed
      143 Differed on stdout
      14 Diffrred on stderr
      Unless I am mistaken, these are the same as I had for 2.12 as I released it - before going back to the original .set_up and related .lf files.
      There was one line I had to comment out - it looked like stray characters and caused a syntax error on loading - either in .set_up or built_ins.lf
      However I like this organization of the files better.
      Also I discovered the x-windows as well as being commented out were missing from the archive of 1.02 as I had received it
      Later - I think "listing" is working correctly - just did not understand what it did before - added to my test for it also.
    31. Wild_life 2.12 June 26, 2016
      Life-2.12.tar.gz 6/28/2016In the c code, I have only commented out "|| label > 0" after a "*** No" response in login.c and the version number (which I forgot in a few versions) I have also "approved" many of the Test Suite results added more & improved the scripts.
      I downloaded & unpacked Life-2.11 on both Ubuntu (to a new directory) and cygwin. (It's the starting point for 2.12)
      I noticed I had t make from within the regexp directory on cygwin but not fot Ubuntu
      There were. otherwise no compile errors or warnings for either.
      There are now 407 cases in the Test Suite (Originally, I think there were 325).
      How they compared to reference output.
      I think some discrepancies are due to incorrect punctuation in my input - I will go over that more closely. I have improved the test scripts to make that faster & easier.
      6/27/2016 - Have been reviewing testing. Made one change in c code as result. Commented out "|| level > 0" in line 2035 of login.c
      I think values should not be printed it there was no match. (though it might be useful in debugging.)
      I have noticed that my code is leaving @ where the examples in the handbook give a variable name, although that variable is given as @ further along.
      I am marking such cases OK now.
      Also there seems to be a problem with "::".
      Also I should mention ./ee is a useful script in the Source directory
      I have also made a couple improvements to the testing scripts.

      On cygwin:
      223 matched perfectly
      184 differed
      179 differed on stdout
      20 differed on stderr
      On Ubuntu:
      226 matched perfectly
      181 differed
      176 differed on stdout
      19 differed on stderr

      I examined the differences in the differences.
      The following matched in Ubuntu but not cygwin
      1. aaa-09-02B
      2. z-gctoken1
      3. z_maurice
      I decided to continue development on Ubuntu for 2 main reasons:
      1. Ubuntu is much faster than cygwin (different partitions on the same machine.)
      2. I can print directly from emacs under Ubuntu.
      I have found The Meaning of Life
      Also here is the Life Handbook
    32. Wild_life 2.11 June 24, 2016
      Further Testing
      1. Life-2.11.tar.gz 6/26/2016 I have not changed wild_life itself any further since 2.10 - except the version number (which I forgot in a few versions) - just added a lot more tests and made them easier to use.
      2. I've been doing all the work lately with Ubuntu Linux. Next plan to compile with cygwin & SUSE Linux.
      3. I have not changed wild_life itself since 2.10 - except I noticed I had failed to update version number in the Makefile.
      4. I have added more testing, however.
      5. Here is the tar.gz (version 2.11.A) of the Tests directory.
      6. Still no changes - just more testing.(6/25/2016) Here is the tar.gz (version 2.11.B) of the Tests directory.
      7. You may use the shell script ./editdiffs.sh in it to browse my results for both the examples through page 29 of the WildLife handbook.
      8. Also all the Test Suite is included.
      9. I think many of the differences in output in the examples I am taking from the handbook may be due to errors in punctuation on my part.(';', and blank lines)>/
      10. Also note ctrl-d os now used to interrupt execution instead of ctrl-c.
      11. 6/26/2016 3:30pm CST I am to example 9-7. (page 67 of 100 pages)
      12. 6/26/2016 5:30pm CST I am finished entering examples (to example 11.6 page 75). After that there are sample programs, which were provided with the source code.
      13. Here is the tar.gz (version 2.11.C) of the Tests directory. I have plans to improve the testing scripts more.
      14. For now, I'm going back to see what discrepancies I can clear up with correcting punctuation or other typos.
      15. Browsing the results requires (I think), only bash and $EDITOR set to an editor (I use emacs) - you need not execute wild_life itself.
      16. For the example cases which the output did not appear to me the same, the reference output files are empty.
      17. At least in some cases, I think my results may be more correct.
    33. Wild_life 2.10 June 23, 2016
      Main improvement
      1. Life-2.10.tar.gz
      2. I have undone & redone parts of changes to login.c
      3. I had some considerable trouble with the variable "level".
      4. But my initial changes only made the problems different.
      5. I redid the changes & the old symptoms came back.
      6. But, with effort, I found the problem.
      7. In adding casts, I had changed "level + 1" to "(GENERIC)level + 1".
      8. The correct change is to "(GENERIC)(level + 1)"
      9. That solved that problem.
      10. I plan to write a snobol4 program to look for other possible placed I made similar mistakes.
      Studying Wild Life
      1. It had been a long time since I studied Wild Life much.
      2. Even then most of what I did was essentially just prolog.
      3. One being a pitch card game originally written in prolog.
      4. I also want to write Wild Life code to represent my philosophy.
      5. The ability to make automatic testing (which I was unable to find way to do in prolog), as in Wild Life Test Suite is important for this.
      6. Anyway, in order to understand Wild Life better, I am working through the Wild Life Handbook, working the examples.
      7. This is also a good way to test simple cases, and doing the cases reinforces the material.
      8. I am adding the examples to the Test Suite, at the beginning, by starting them with "aaa".
      9. I also added my pitch game
      Testing Results
      1. 333 Total Tests - I added several - but removed one because it was abending.
      2. 186 Match Perfectly - And I restored Test Suite to original reference output since revising the "level" calculations.
      3. 147 Differ
    34. Wild_life 2.08 June 21, 2016
      1. Planning to start 2.08 (initially copy of 2.07)
      2. I plan to go through Test Suite "approving" any which seem to differ only in lacking unification in the reference output.
      3. 6/21/2016 1:36 PM, I have reviewed the 1st 80 tests & approved those which appeared to differ in only (formerly) inadequate unification,
        or in the "level" indicated by prompts - something else I made (I believe improvements to).
      4. Having reviewed the 1st 80 tests, now of the total 325 tests 178 now match, and 147 still differ.
      5. Of the 1st 80 tests - 3 (tests 10, 28 and 43) were indicated as bugs being investigated already.
      6. Another 9 showed differences which I was not confident to be caused by unification or level.
        Tests 32 & 35 involved "*".
        Tests 38, 49, 53 & 64 just now had shorter output.
        Tests 72 & 78 involved cycles & also had shorter output.
        Also Test 78 differed.
      7. So, so far, I have "approved" an additional 43 tests.
      8. 6/21/2016 5:26PM, Now have reviewed about the 1st 270 tests (I accidentally hit ctrl-c). - Anyway I have a meeting to go to.
        Now 237 tests match and 88 differ - So I have approved 102 so far.
        I generally approved only cases that appeared to fit the two categories described above.
        There were some other differences that occurred more than once and sometimes appeared easy to fix - but they are not fixed yet so cannot approve yet.
        Also there were some instances that seemed to fit the two categories - but looked interesting to examine more - so I did not approve yet.
        Also in examining the manual I found some expressions are equivalent & so in some of the cases the output differs, it still may be equivalent.
        I need to re-study the WildLife Handbook.
      9. 6/21/2016 10:16PM
        Completed initial pass though Test Suite doing preliminary approvals.
        325 total tests
        244 match
        81 differ
        76 differ in output
        9 differ in error messages
        107 approved so far
        The discrepancies often appeared similar.
      10. 6/22/2016
        Resolved error with missing line numbers in error output in canonical.lf. (error.c)
        Must have introduced error elsewhere - stats remained the same (later - I think I may have looked at the wrong number).
        Reviewed the results again & selected representative (& relatively simple cases) containing most examples of types of errors.
        long.lf
        manual4.lf
        manual8.lf
        module_test5.lf
        nofour.lf
        nonstrict2.lf
        nonstrict5.lf
        op1.lf
        pagewidth.lf
        posint.lf
        print2.lf
        print_depth1.lf
        soap.lf
        sub.lf
        t8104.lf
        tan.lf
        writeq.lf
        z_out2.lf
      11. 6/22/2016 - next day
        It has become obvious that although in some of the Test Suite, the original REFERENCE output had the evaluation not go FAR enough,
        that, currently, in my port, it sometimes goes TOO FAR.
      12. I have studied the code a lot and not found a solution so far.
        I have a very simple test case however - modified from the Test Suite.
      13. %% Modified from long.lf in Test Suite %% Evaluates TOO FAR in PORT - OK in REFERENCE DATA q(AA,AA,BB,BB).
        listing(q)?
      14. addtab.lf does not evaluate FAR ENOUGH in Test Suite REFERENCE DATA - OK in PORT
      15. There is a macro noneval in extern.h that indicates the predicates quote, listingsym, and loadsym should not have their arguments evaluated.
        However it is not used in anywhere. (and it was not in the original 1.02 code.)
        I've looked almost everywhere for changes I've made regarding evaluation (grep & diff & emacs) from 1.02 - no luck so far.
      16. Discovery!!!. I had not been able to find where listing predicate was in c code for wild_life - which was not working in long.lf/
        Anyway I stumbled on it - it is written in wild life NOT c.
        It is in ~/local/lib/life/Source/built_ins.lf
        Now to debugging it!! - or the c code it uses!!!
      17. Later: I started working my way through the Wild Life Handbook. I had not studied it for a long time, though I was looking things up in it.
        I was not only reading, but entering the examples.
        I quickly found that the level was getting off, even in the simple example 3.3
        I had made changes in how it was calculated, because it was sometimes wildly off when I started.
        Anyway I am going all over how the level variable is calculated and have a way to test (at least somewhat).
      18. 6/23/2016 2:09PM
        Worked on Wild Life till 5:00AM
        I had realized I had messed up the level calculation.
        I went back to the 1.02 version and redid all the changes -except the ones involving level.
        I still had trouble with the level - like before I had previously after my initial changes.
        But then I figured the problem out.
        I had been adding casts to clean up warnings.
        I had used some casts before - but where I worked - but about all we used were char pointers.
        Anyway I had changed an argument from "long + 1" to "(GENERIC)long + 1"
        It NEEDED to be "(GENERIC)(long + 1)"
        That FIXED that problem.
        I plan to write a snobol4 program to detect other placed I have made the same mistake - I introduced a lot of casts - but in most there was no arithmetic.
        I also reverted to the original reference output in the Test Suite.
        I will proceed to version 2.10 - but not do the overhead of releasing.
        If my notes from 5:00AM are correct then with the original Test Suite Handbook example 3.3
        326 Tests
        178 Match
        148 Differ
        143 Differ on stdout
        14 Differ on stderr
    35. Wild_life 2.07 June 19, 2016
      1. I've created the initial directory to work in.
      2. Also I have created a wild_life-mode-el for emacs from prolog.el
      3. There was a .el for wild_life already - I only got it to work for indentation.
      4. The one I created does approximately correct syntax highlighting.
      5. It took a lot of time to figure out - I've changed all the prolog variables to wild_life - so other buffers should not be affected.
      6. In my .gnu-emacs-custom file I made it also load for .in files as they are used in the Test Suite.
      7. I've (6/20/2016) now uploaded it - wild_life-mode.2.07.tar.gz
      8. I have not changed c code yet, but discovered the Version and Date do not affect the Test Suite - so now only produce the executable wild_life.
      9. Improved Makefile.
      10. Want to see if I can get Date & Time updated automatically.
      11. It seems like in the discrepancies in the Test Suite output there is a pattern that my port is evaluating (unifying) further.
      12. In the one case I examined somewhat carefully, it appeared my port (2.07) was working correctly & the reference (1.02?) was not.
      13. I need to examine that case (addtab.lf) more carefully - as I already have an understanding of what was inolved.
      14. If that is true, the burden will be on 1.02 to be shown correct, I think.
      15. Tarball of wildlife 2.07 (6/20/2016)
      16. I spent more time examining addtab.lf and concluded that my port port was giving correct answers, and the reference answers were wrong.
      17. The discrepancies I saw in other cases I had time to look at seemed to be similar, though there are so many that I have not examined a large percentage.
      18. NOTE for my memory I uncommented code in login.c and built_ins.c (which was commented before I received the code.) Both places are marked with DJD and 2.07
      19. Both changes had no perceivable effect.
      20. The other changes were mainly improvements to Makefile & testing scripts.
    36. Wild_life 2.06 June 18, 2016
      1. Tarball of wildlife 2.06
      2. I spent a lot of time fixing how "level" is calculated in login.c.
      3. I renamed field elements in 4 structures from "a", "b" and "c" to "aaaa_1", "bbbb_1", "cccc_1", "aaaa"2", ...
      4. The purpose of the was to make searching the code much easier.
      5. Also improved my debugging script in the Source directory - "ee"
      6. It permits running a modified Test Suite - which permits browsing the Test Suite input & output.
      7. As this was released there were 325 tests in the Test Suite - 135 matched perfectly, 190 differed of which 185 differed in output and 14 differed in errors.
    37. Wild_life 2.05 June 16, 2016
      1. Tarball of wildlife 2.05
      2. Includes Updated Test Suite - I have added functionality to ease inspection of the results.
      3. Script file generated allows easy browsing of input, output and differences in output from original output in 1.02 release.
      4. I have fixed warnings which existed in cygwin in release 2.03 (mainly adding missing prototypes) - and retested in Ubuntu - where I had to fix a new warning.
      5. As I was getting a lot of copies I wanted to get copied to the web before I got confused.
      6. I have retested in SUSE Leap 42.1 Linux, Ububtu 14.04 Linux and cygwin - all 32 bit. They all compile with no warnings.
      7. The executable wild_life generated has the original 1.02 version and date displayed in order to use the Test Suite comparisons.
      8. The executable wl has the 2.05 version and date displayed, but is otherwise identical.
      9. There are differences found in the Test Suite - but it will be very time consuming to investigate.
      10. There are 325 tests in the Test Suite. 105 match perfectly. 220 have some difference in output or error output.
    38. Wild_life 2.03
      1. Tarball of wildlife 2.03
      2. Tarball of Updated Test Suite only I have added functionality to ease inspection of the results.
      3. 6/14/2016 In using release 2.02 I have found many problems.
      4. There were abends when there was a syntax error.
      5. I did not discover it earlier as I had been testing with a program without errors.
      6. It was mainly due to errors in the use of stdargs in the error messages.
      7. I have removed all the old varargs stuff.
      8. Then in more testing I discovered problems in garbage collection.
      9. I have fixed this as far as I know.
      10. I have done testing with both syntax errors & forcing garbage collection with the predicate gc.
      11. I hope to do more testing in order to make the next release as good as I can.
      12. I plan to use the test routines that came with Wild Life - except the size of many of the source files is zero - so not all are usable.
      13. I have tested with SUSE Leap 42.1 Linux, Ubuntu 14.04 Linux and Cygwin (all 64 bit)
      14. There are compile warnings under cygwin, but not either Linux.
      15. The scripts in the Test directory will run (provided you have bash, csh, diff and copy wild_life to ~/bin)
      16. There are differences to the reference output, but analysis will be very time consuming, and I am not sure which (if either) is correct.
      17. I decided I had made enough progress to go ahead & release.
      18. The version and date are displayed are that of the 1.02 release - otherwise they interfere with the Test Suite comparisons.
    39. Wild_life 2.02 6/11/2016
      1. Tarball of wildlife 2.02
        I have cleaned up and documented the Installation Procedure.
        It has been tested on SUSE Linux Leap 42.1, Ubuntu Linux 14.04 and cygwin under Windows 10 (all 64 bit).
    40. Wild_life 2.01
      1. Tarball of wildlife 2.01
      2. Also Short Wild Life 2.01 Video Demo (of card game pitch programmed in wild_life)
      3. Wild_life 2.01 Seems to work file under 64 bit SUSE Linux and both 32 and 64 bit cygwin.
      4. Will need a little attention to paths to install & get working and the install process (configure) has not been updated. (Not enough time yet & not tested enough)
      5. DO NOT TRY to use "configure"
      6. Copyright info says it may be modified & redistributed - as long as that info is preserved and it is not for profit.
      7. In using a different computer, I noticed there were paths to /usr/local - changed these to ~/local. Seems to be working (also had to copy some files).
      8. Thinking I will use to develop my philosophy more.
  4. Bertrand
    1. Found newer version of Bertrand (still written in c - and got working (5/24/2014)
    2. Bertrand tarball - works under SUSE Linux 13.1 (no graphics I think) All I changed was the Makefile, I think
    3. Copyright info says it may be modified & redistributed - as long as that info is preserved and it is not for profit.
    4. Bertrand Documentation
      1. Bertrand Documentation
      2. Bertrand Guide
      3. Bertrand Reference
      4. Bertrand License
      5. Bertrand README
      6. Bertrand README2
      7. Bertrand book
  5. Work on russell
    1. (6/25/2017) I recently started trying again - this time in java.
      The main purpose is to become familiar with java in a fairly complex situation.
      I will keep a copy of the ported code using bison (which I stopped using) HERE
      I switched from bison to BYACC/J that code is HERE
    2. I played a little with the russell code in c++ and java. (5/6/2017)
      I was having trouble figuring out how to handle one thing in unicon.
      I think I have figured that out & am restarting in unicon.
    3. It is very difficult. (5/10/2017)
      I am doing it mostly to stay familiar with c and unicon - with very little expectation of success.
    4. Restarting RUSSELL PORT 8/1/2016
      Restarted 8/1/2016
      I am restarting using what I learned porting WildLife.
      1. RUSSELL-3.3.tar.gz -as I received it in the '90s
      2. RUSSELL-4.01.tar.gz - I have created scripts for editing - all from ee (8/1/2016)
      3. RUSSELL-4.02.tar.gz - I have created more scripts for editing - all from ee (8/1/2016)
      4. I plan to create master def_proto.h header with prototypes for all functions (except static ones)
      5. RUSSELL-4.03.tar.gz - Gathered data into def_proto.h (8/3/2016)
      6. I may go back to Unicon (C looks to unportable). I will modify c editing scripts for use with Unicon.
      7. RUSSELL-5.01.tar.gz - Back to Unicon with improved editing scripts (8/12/2016)
      1/13/2016 No I have not given up on this - I have just been very busy on other things.
      I will eventually try to get back to it - I have a lot on my plate right now.
      1/19/2016 I restarted on this - I won't have much time for a while.
      1/22/2016 - Decided to quit (for at least now) on this for a few reasons:
      1. It appears it was never fully finished in the first place.
      2. I don't fully understand some of what it is supposed to do.
      3. Even if I tried really hard I feel I would fail.
      4. Even if I succeeded no one would probably use it - ml seems to be a stable widely used language with somewhat similar characteristics.
      5. I should, in any case, study ml ml closely before working on this.
      6. Instead I plan to work on philosophy of propositional attitudes using WildLife (above)
      Later: I may not stop on this after all. (1/22/2016). 2/13/2016: I worked on this tonight - got past what I was stuck on.
      I just needed time to think it through.
      Will continue in my spare time.
    5. Russell as I received it in 1990's and Porting Notes
      russell.tar.gz
    6. Russell Grammar as I received it in 1990's
      1. grammar.y - input file to flex and bison (at that time lex and yacc) to create lexical scanner and parser
      2. lex.yy.c - scanner
      3. grammar.tab.h - header file for parser
      4. grammar.tab.c - parser
      5. russell.grammar report - bison report file on russell
    7. Porting Efforts - Past - None of these are nearly complete or functional at all.
      C, Ruby, Snobol
      1. Tarballs of Ruby port, etc.
      2. Tarball of progress on converting russell from c to ruby(as of 7/6/2014 )
      3. Tarballs of snobol4 port, etc.
      4. Snobol program for indenting snobol programs (9/10/2015)
      5. The russell.sno program (as of 9/18/2015)
      6. A simple russell test program (as of 9/18/2015)
      7. Scanner Table for test program (as of 9/18/2015)
      8. Parser Table for test program (as of 9/18/2015)
      9. Statistics from russell.sno for simple test program (as of 9/18/2015)
      10. Nodes data from test (as of 9/18/2015)
      11. Lists data from test (as of 9/18/2015)
      12. Debugging data from test (as of 9/18/2015)
      13. Error data from test (as of 9/18/2015)
      14. Output of Russell test (as of 9/18/2015)
      15. Statistics from snobol for russell.sno Test (as of 9/18/2015)
      16. 9/18/2015 - Suspended port of russell for port of flex & sbison - (sflex & sbison) - to be used. More on them to be added on this page later.
      17. 9/21/2015 - My intent had been to modify flex & bison to generate snobol4 code.
      18. However in studying this I learned there is some support already for generating java.
      19. Then investigating that, I found there are other applications of that sort for java.
      20. Java would be superior to snobol for a number of reasons - so I am going to investigate this.
      21. One reason is the global nature of variables etc in snobol.
      22. Another is java is much more like the C russell was originally written in.
      23. Another is the garbage collection that java does automatically.
      24. However, again, my study has paid off.
    8. Porting to Unicon - Lexical Analysis and Parsing Seem to Work
      1. It ended up that I decided to use Unicon rather than Java:
        Source Code: (as of 10/6/2015)
        It's too hard to update this - I am providing tarballs further below.
        1. The Grammar files:
        2. pass1/parser/grammar.orig.c.y.txt
        3. NOTES.gmr.edit.txt.txt
        4. pass1/parser/grammar.edit.y.txt
        5. fixgram.sno.txt
        6. pass1/parser/grammar.icn.txt
        7. Unicon Source
        8. defs.tmp.icn.txt
        9. global_vars.tmp.icn.txt
        10. globals_init.tmp.icn.txt
        11. main.tmp.icn.txt
        12. mine.tmp.icn.txt
        13. pass1/scanner/scan.tmp.icn.txt
        14. pass1/scanner/scan_sep_inc.tmp.icn.txt
        15. pass1/parser/grammar.fixed.tmp.icn.txt
        16. pass1/parser/initids.tmp.icn.txt
        17. pass1/applinfer/precedence.tmp.icn.txt
        18. pass1/stt/stt.tmp.icn.txt
        19. pass5d/RIC.tmp.icn.txt
        20. stree/ststructs_cls.tmp.icn.txt
        21. stree/mknode.tmp.icn.txt
        22. pass1/applinfer/mkappl.tmp.icn.txt
        23. stree/Array.tmp.icn.txt
        24. pass1/applinfer/mkappl2.tmp.icn.txt
        25. pass1/applinfer/outermost_op.tmp.icn.txt
        26. pass1/applinfer/single_arg.tmp.icn.txt
        27. pass1/applinfer/cand_cond.tmp.icn.txt
        28. pass1/applinfer/cor_cond.tmp.icn.txt
        29. sigio/sig_out.tmp.icn.txt
        30. sigio/sig_in.tmp.icn.txt
        31. End Unicon Source
        32. mknode.icn - make nodes
      2. NOTES on Unicon and iyacc
        1. I found I had to remove comments from the rules section of grammar.y for iyacc
        2. I found many closing "}"'s were missing in the code iyacc generated
        3. I had to move local variable declarations - they can go after any "{" in c or anywhere in c++, but must go at top of procedure in unicon
        4. At this point, the scanning & parsing seems to work - I haven't started on code generation yet.
      3. Tests (10/11/2015) - Lexical Analysis and Parsing
        1. Misc russell code - output
          1. misc.r.txt
          2. urusserr.tmp.txt
          3. urussout.tmp.txt
          4. progress.tmp.txt
          5. reduce.tmp.txt
          6. ccode.tmp.txt
          7. stats.tmp.txt
          8. lists.tmp.txt
          9. nodes.tmp.txt
          10. cons.tmp.txt
          11. tree.tmp.txt
          12. sym.tmp.txt
          13. russ_info.tmp.txt
        2. Factorial function in russell
          1. fact.r.txt
          2. urusserr.tmp.txt
          3. urussout.tmp.txt
          4. progress.tmp.txt
          5. reduce.tmp.txt
          6. ccode.tmp.txt
          7. stats.tmp.txt
          8. lists.tmp.txt
          9. nodes.tmp.txt
          10. cons.tmp.txt
          11. tree.tmp.txt
          12. sym.tmp.txt
          13. russ_info.tmp.txt
      4. Tarball of Russell language in Unicon as of 10/6/2015
      5. Tarball of Russell language in Unicon as of 10/11/2015
      6. Tarball of Russell language in Unicon as of 10/12/2015
      7. Tarball of Russell language in Unicon as of 10/15/2015
      8. Tarball of Russell language in Unicon as of 10/16/2015
      9. Tarball of Russell language in Unicon as of 10/19/2015
      10. Tarball of Russell language in Unicon as of 10/24/2015
      11. Tarball of Russell language in Unicon as of 11/05/2015
      12. Tarball of Russell language in Unicon as of 02/19/2016
      13. Tarball of Russell language in Unicon as of 03/25/2016
      14. Tarball of Russell language in Unicon as of 03/26/2016
      15. Tarball of Russell language in Unicon as of 03/27/2016
      16. Tarball of Russell language in Unicon as of 03/29/2016
      17. Tarball of Russell language in Unicon as of 04/22/2016 (I finally solved some things I was stuck on)
      18. Tarball of Russell language in Unicon as of 04/22/2016 (Much more progress)
      19. Tarball of Russell language in Unicon as of 06/02/2016 (Work done on script for editing, etc.)
      20. Tarball of Russell language in Unicon as of 06/04/2016 (Generate HTML tables of node tree.)
      21. Tarball of Russell language in Unicon as of 06/07/2016 (More Debugging .)
      22. Tarball of Russell language in Unicon as of 06/07/2016 (Finally getting ConsNode usage figured out!!!)
      23. Plans for Code Generation
        1. I have begun to study the runtime code
        2. I think it will be much simpler in unicon
        3. I think the difficulties with garbage collection will go away with unicon's garbage collection
        4. I will not need to keep lists of things to be freed.
        5. I think I won't need to worry about type conversions either.
        6. I did enough with the runtime to realize I cannot do much without data to drive it - which will rely on code generation.
        7. But I need to have at least a general idea of the runtime in order to know what is important in the code generation.
        8. I suspect some (but not much) of what I have done is unnecessary because of unicon's automatic garbage collection
        9. I will study the runtime a little more then switch back to porting the code generation
        10. 3/25/2016 I found a mistake I made defining classes - started fixing it.
    9. Russell Documentation that I can Share
      1. What is this documentation?
      2. Introduction to Russell I'm working on editing this Introduction - there is much more in this than I realized - I should have worked more on it before.
        Also I obtained the bibliography below from it.
      3. Tar file of rhelp files (much information). It includes properly formatted "Introduction to Russell" (above).
        There are 2 Linux scripts help1.sh and help2.sh which provide menus using "more".
      4. Changes to Russell
      5. Initial Environment for Russell
      6. Installation (old directions) for Russell
      7. Pass1 What file for Russell
      8. Pass1 Readme file for Russell
      9. Pass2 Readme file for Russell
      10. Pass3 Readme file for Russell
      11. Pass4 Readme file for Russell
      12. Pass5c Readme file for Russell
      13. Pass5d Readme file for Russell
      14. Pass5d op_codes.h file for Russell
      15. doxygen documentation generated for russell from code I started with
    10. Examples of russell code
      1. callcc_test.r.txt
      2. complex.r.txt
      3. compose.r.txt
      4. enum_test.r.txt
      5. extend_test.r.txt
      6. extern_test.r.txt
      7. fact.r.txt
      8. ffact.r.txt
      9. fib.r.txt
      10. fixpoint.r.txt
      11. fp_test.r.txt
      12. gauss.r.txt
      13. identity.r.txt
      14. lazy_sexpr.r.txt
      15. lazy_test.r.txt
      16. lfib.r.txt
      17. memo.r.txt
      18. points.r.txt
      19. primes.r.txt
      20. print.r.txt
      21. psexpr.r.txt
      22. psexpr_test.r.txt
      23. rfib.r.txt
      24. self_appl.r.txt
      25. sep_test.r.txt
      26. sexpr.r.txt
      27. sig_test.r.txt
      28. squares.r.txt
      29. string_test.r.txt
      30. sum.r.txt
      31. tree.r.txt
      32. tree_test.r.txt
      33. typearg.r.txt
    11. Russell - Additional Bibliography that I have
      1. Boehm, Hans‐J., and Alan Demers, ‘‘Implementing Russell’’, Proceedings of the SIGPLAN ’86 Symposium on Compiler Construction, SIGPLAN Notices 21, 7, July 1986, pp. 186‐195.
      2. Boehm, H., Russell on‐line ‘‘rhelp’’ facility. Distributed with the Russell Compiler. (A version of this paper is available as ‘‘rhelp intro’’.) - The intro has formatting problems I have not had time to fix. Menus which use "more" (& work properly on it) are provided in rhelp.tar.gz
      3. Demers, A. and J. Donahue, ‘‘Data Types, Parameters, and Type‐Checking’’. Proceedings, Seventh Annual Principles of Programming Languages Symposium, 1980, pp. 12‐23.
      4. Demers, A. and J. Donahue, ‘‘Type‐Completeness as a Language Principle’’. Proceedings, Seventh Annual Principles of Programming Languages Symposium, 1980, pp. 234‐244.
      5. Demers, A. and J. Donahue, ‘‘Making variables abstract: an equational theory for Russell’’. Proceedings, Tenth Annual Principles of Programming Languages Symposium, 1983.
      6. Donahue, J., and A. Demers, ‘‘Data Types are Values’’, ACM Transactions on Programming Languages and Systems 7, 3 (July 1985), pp. 426‐445.
      7. Dijkstra, E., A Discipline of Programming. Prentice‐Hall, 1976.
      8. Stoy, J., Denotational Semantics: The Scott‐Strachey Approach to Programming Language Theory. MIT press, 1977. See esp. chapter 7.
    12. Russell - Additional Bibliography that I do not have
      1. Boehm, H., A. Demers, and J. Donahue, ‘‘An Informal Description of Russell’’. Technical Report 80‐430, Computer Science Department, Cornell University, 1980.
      2. Boehm, H., A Logic for the Russell Programming Language, Thesis, Cornell University, 1984.
      3. Demers, A., and J. Donahue, ‘‘Data Types are Values’’, Departmentof Computer Science, Cornell University, Technical Report TR79‐393, 1979.
      4. Demers, A. and J. Donahue, ‘‘The Semantics of Russell: An Exercise in Abstract Data Types’’. Technical Report 80‐431, Computer Science Department, Cornell University, 1980.
      5. Hook, Jim, ‘‘Understanding Russell ‐ A First Attempt’’, Semantics of Data Types, Proceedings, Springer Lecture Notes in Computer Science 173, 1984, pp. 69‐86.
    13. Russell - Additional Relevant Bibliography that I have
      1. Aho, Alfred V., Ravi Sethi and Jeffrey D. Ullman, Compilers: Principles, Techniques and Tools. Addison-Wesley, 1988.
      2. Aho, Alfred V. and Jeffrey D. Ullman, Principles of Compiler Design. Addison-Wesley, 1977.
      3. Backus, J., ''Can Programming be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs'', Communications of the ACM 21, 8 (August 1978), pp. 613-641.
      4. Cadenhead, Rogers, SAMS Teach Yourself Java 2 in 24 Hours, SAMS, 1999.
      5. Corre, Alan D,, Icon Programming for Humanists, 2nd Edition. Goal-Directed Press, 2010.
      6. Church, Alonzo, The Calculi of Lambda-Conversion. Princeton University Press, 1951.
      7. Daconta, Michael C., Al Saganich and Eric Monk, Java 2 and JavaScript for C and C++ Programmers, Revised Edition. Wiley, 1999.
      8. Dahl, O. J., E. W. Dijkstra and C. A. R. Hoare, Structured Programming, Academic Press, 1972
      9. Dijkstra, Edsger W., Selected Writings on Computing: A Personal Perspective, Springer-Verlag, 1982
      10. Flanagan, David, Java in a Nutshell, 3rd Edition. O'Reilly, 1999.
      11. Gimpel, James F., Algorithms in SNOBOL4 ("The Orange Book"), Catspaw, 1986.
      12. Griswold, Ralph E., The Macro Implementation of SNOBOL4. Freeman, 1972.
      13. Griswold, Ralph E. and Madge T. Griswold, A SNOBOL4 Primer. Prentice Hall, 1973.
      14. Griswold, Ralph E. and Madge T. Griswold, The Implementation of the Icon Programming Language, Princeton University Press, 1986.
      15. Griswold, Ralph E. and Madge T. Griswold, The Icon Programming Language, third edition, 1997.
      16. Griswold, R. E., J. F. Poage and I. P. Polonsky, The SNOBOL4 Programming Language, second edition, ("The Green Book"), Prentice-Hall, 1968.
      17. Griswold, Ralph E., String and List Processing in SNOBOL4: Techniques and Applications. Prentice-Hall, 1975.
      18. Jeffery Clinton, Shamim Mohamed, Jafar Al Gharaibeh Ray Pereda and Robert Parlett, Programming with Unicon: Very high level object-oriented application and system programming. 2nd Edition, draft manuscript, 2015.
      19. Jeffrey, Clinton, ed. The Implementation of Icon and Unicon: a Compendium. draft manuscript, 2004.
      20. Josuttis, Nicolai M., The C++ Standard Library: A Tutorial and Reference. Addison Wesley, 1999.
      21. Kernighan, Brian W. and Dennis M. Richie, The C Programming Language, second edition. Prentice-Hall, 1988.
      22. Levine, John, flex and bison. O'Reilly, 2009.
      23. Lewis II, P. M., D. J. Rosenkrantz, and R. E. Stearns, Compiler Design Theory. Addison-Wesley, 1976.
      24. Maurer, W. Douglas, The Programmer's Introduction to SNOBOL. Elsevier, 1976.
      25. Paulson, L. C., ML for the WORKING PROGRAMMER. Cambridge, 1996.
      26. Steele Jr., Guy L., Common Lisp: The Language. Digital Press, 1984.
      27. Stroustrup, Bjarne, The C++ Programming Language, Third Edition. Addison Wesley, 1997.
      28. Ullman, Jeffrey D., Elements of ML Programming, Prentice Hall, 1994.
      NOTES:
      ML is a computer language I have which has some characteristics of Russell.
      I am now working on porting Russell from C to SNOBOL4.
      Common Lisp is a computer language with some relation to the lambda calculus and denotational semantics, etc.
      flex is a Linux replacement for lex which was used generating Russell C code.
      bison is a Linux replacement for yacc which was used generating Russell C code.
    14. My Notes on Russell and my porting efforts
      1. 5/24/2014 Worked on porting c code.
      2. 5/25/2014 Decided to try to port to Ruby
      3. I have made special version of ruby supporting goto (needed for code generated by bison)
      4. Work just begun - not optimistic
      5. 5/26/2014 Continue on Ruby port - not optimistic - but it is fun anyway.
      6. 6/4/2014 Going much better than expected - lexical box runs although not tested and part of pass 1 of parser - though much commented out for now.
      7. 6/11/2014 Continue to make much better progress than expected - was stuck at one point - but solved it and things seem to be going easier again
      8. 6/21/2014 Still making progress - but little hope of success.
      9. 7/6/2014 Giving up for now - I don't understand how it is supposed to work to tell what is going wrong - and I have other things I want to do more.
      10. Copyright info says it may be modified & redistributed - as long as that info is preserved and it is not for profit.
      11. Decided (8/23/2015) to go back to working on C version.
        Main Reasons:
        1. I am not sure Ruby goto really works well.
        2. I learned a lot working on Ruby code I can use.
        3. I researched and found out gnu debugger does more than I realized - although it will require some learning.
        4. I found I really have a little more documentation than I had realized - I am working on formatting some of it better.
        5. Most modern languages I might use have no goto (which is used in code)>
        6. I need a project.
      12. After working on c port (8/24/2015), think Ruby may be better after all. Eliminate goto's somehow if necessary!!!
      13. Switched to porting to snobol4 a few days ago (as of 8/29/2015)
      14. The past few days I have been working on a snobol4 program to better format a snobol4 program (9/4/2015)
      15. This is useful both for formatting russell.sno and reviewing my knowledge of snobol4
      16. 9/10/2015 forward Notes on porting Russell from C to Snobol4
      17. 9/18/2015: I've decide to make modified versions of flex & bison to generate snobol4 instead of C. (reamed sflex and sbison)
      18. I have not wasted time attempting to modify C code ad this knowledge will be helpful.
      19. Doing this will have the great advantage that the input to sflex and sbison will be easier to modify if desired that the C code generated and then converted!!!
      20. 4/19/2016:Working again lately - isolating the problem I am having.
      21. 5/25/2016: Had been having Gtk warnings in openSUSE since changing to Leap 42.1 - also noticed similar warnings after installing filezilla yesterday.
        (such warnings contained Theme directories categories /16 of theme breeze has no size field or
        The property GtkSettings: gtk-enable-tooltips is depreciated)
        Did web search & then Under Settings -> Configure Desktop ->Application Style -> GNOME Application Style
        Changed GTK2 &GTK3 Themes to Adwaita (I don't think this mattered)

        Behaviour to (this seemed to be what helped)
        GTK style toolbar to Text Only
        Unchecked both boxes for icons
        Swapped Icon Themes (I don't think this mattered)

        Also under Settings -> Configure Desktop -> Desktop Theme
        I changed from Breeze to openSUSE
        (But I think this did not matter)

        Also after these changes, I was able to turn off touchpad with F9 (which I was unable to do before - which was driving me crazy!)
  6. Russell2
    1. 01:26:12 AM Thu, Feb 05 2015
    2. I've started a project of modifying Icon to be similar to what Russell was - I am calling it Russell2.
    3. So far I have installed Icon and modified it to create executables russell2t and russell2x.
    4. I also changed it to Russell2 Version 1.0.0
    5. I intend to slowly make changes to modify it to have syntax closer to Russell while letting much of Icon stay the same.
    6. It builds and runs (with new names) - I haven't run all the tests yet.
    7. Mostly I just want to do some programming - missing it. Don't expect to accomplish much.
    8. 07:21:53 PM Thu, Feb 05 2015
    9. Testing - fixed revision of icode.
    10. Tests work except cfuncs and extvals.
    11. Samples work except featues.
    12. Worked to male use src/common/typespec.txt
    13. Next need to use flex and bison.
  7. My health data analysis project - using snobol, unicon, c++, APL, and Maple:
    My Heath Analysis Project
  8. Time Tracking Programs.
    1. Time spent on my activities
    2. Time spent on Viewing
    3. Time spent on Reading Books
    4. Time spent on Reading Papers
  9. Checking Proofs in Principia Mathematica using snobol4
    1. PM Proof Checker
  10. Work in Java.
    Java Quantum Mechanical Pinball Game.
    I studied the code some again - I am not certain that it is quantum mechanically correct - but I am sure it has that sort of effect.
    1. Pinball Help
    2. JavaQm javadoc generated documentation
    3. Quantum Ball