Smiley Face    

Robin Snyder: programming (1973-present)
by Robin Snyder  ,  robin@RobinSnyder.com , source: VITA/progs-00 [NV/asp]
[page formatted/updated on 2008/04/29 at 07:19:00 , loaded on 2012/02/08 at 16:10:05 ]
versions:    screen-friendly    printer-friendly


1.0 Robin Snyder: programming (1973-present)

    Here is a brief overview of some of the more interesting and important programs/systems/languages that I have developed that either I or other people use to do useful things.

    Here are some short descriptions of a few recent and current projects on which I have worked. I use every technology and method I can to streamline the lifecycle software development process.

    • Since 1998, I have been increasingly integrating more audio, images,and video functionality and interfaces (e.g., via Windows API) into software that I develop.
    • Since 2000, I have developed and maintain a significant part of the Transaction Technologies (T-Tech) front end (Linux/Apache/PHP) and back end (Windows/IIS/ASP) including SQL Server management/access. This is done through Point Enterprises. The front-end is at http://www.ttechpayments.com/ . My part of the system includes the login/authentication subsystem, user management subsystem, tree-structured browsing system for resellers, merchants, collection agencies, etc., criteria and query result paging system, various stored procedures and queries for SQL Server, XML-based transfers, .NET for selected transfers, web system branding (to allow other sites to use one site as if each owned that site), etc.
    • Since 2006, I maintain the West Point of Savannah web system (Linux/Apache, converted from HTML to PHP) at http://www.west-point.org/society/wps-savannah .
    • Since 1995, I developed and implemented an extensive web system of thousands of web pages, XML files, and associated student submission database, to manage my courses. This included a link/update checker, secure remote update system, login authentication system, etc. A unique formatter approach allows changes to be propagated and updated automatically through the system in a human and machine efficient manner.
    • In 2002 I developed a concept called lazy permutation variables that allows Prolog-like syntax to be used to specify constraints for finite domains. This syntax is compiled to a low-level Prolog code that can be efficiently executed to solve the permutation problem by eliminating subpermutations that need not be explored. It is useful for problems of reasonable size. I created and implemented a Prolog compiler and runtime system to show the usefulness of this idea.
    • Since 1000, I have gradually converted and expanded my classroo/content management system from about 10,000 lines of Turbo Pascal in DOS to, currently, over 300,000 lines of Delphi Pascal code in Windows plus an extensive web-based content management system consisting of HTML, ASP, JavaScrpit, XML, ADO/SQL, CSS, and various ActiveX controls (some commercial, some developed using Visual Basic or Delphi). The system allows content management, question extraction, assignment publishing, submissions, collections, annotations, status to student, etc., as well as supporting acquisition and management of student images, attendance, and many other things important for running a college class - inside and outside the classroom.
    • Since 1994, I have further developed and extended an LALR(1) parser generation system started in graduate school and used it to create a number of mini-languages for problem solving. Some of these uses include the following: Datalog/Prolog subset for lazy permutation variables, prerequesite rules/constraints for university courses, fuzzy approximation, simple backpropagation neural networks, multiple linear regression, spreadsheet modeling, project PERT/CPM modeling, etc. The nice feature of LALR(1) parser generators is that the syntax of the notation can be easily separated from the semantics of actions specified by the notation.

    1987-1990:

    • Prolog, DOS: Ear training program using MIDI
    • Prolog, VM/CMS: Simulated compilers for a variety of functional language models
    • Prolog, VM/CMS: Theorem prover for algebraic proofs by induction
    • Pascal, DOS: Full screen editor
    • Pascal, DOS: Lazy functional language editor, compiler and run-time system
    • Prolog, DOS: Conversion of EBNF to syntax diagrams
    • Pascal/assembly, DOS: Routines for fast computation of Mandelbrot set fractals using the 8087 numeric coprocessor.
    • 4DOS, DOS: Started using 4DOS batch programs for automating many tasks

    1985-87:

    • REXX, VM/CMS: SOIL, a screen-oriented interface language user interface generation system, used to generate the teacher-side and student-side user interface to Classy
    • REXX, VM/CMS: CLASSY, a classroom administration program, including electronic submission, running, and collecting of programs, tracking student computer usage, etc.
    • REXX, VM/CMS: SCORGE, a scorekeeping program for class, included email of scores to students
    • Pascal, VM/CMS: LPSolves, linear programming using simplex method
    • Pascal, CP/M: Routines for arithmetic computations of up to 2047 bit integers, used for number theory course, including public key cryptography

    1984:

    • Pascal, DOS: System to connect an IBM PC to an Apple II, transfer BASIC programs, and automate, as much as possible, the conversion to PC BASIC. Included some support for 6502 to 8086 assembly language conversion. Required the writing of interrupt-driven serial port routines.
    • Pascal, VM/CMS: Zadd, a LALR(1) parser generator
    • Pascal, VM/CMS: Small Pascal compiler using LALR(1) parsing tables
    • Modula-2, UCSD: operating system BIOS drivers, including a memory drive driver

    1982-1983:

    • FORTRAN, TOPS-10, DEC-10: Lighting program (rewrite to improve performances)
    • FORTRAN, TOPS-10, DEC-10: Stepwise linear regression (rewrite to improve performance)
    • ALGOL, TOPS-10, DEC-10: Stepwise linear regression
    • ALGOL, TOPS-10, DEC-10: Device independent graphics system, used by many other programs
    • LISP, TOPS-10, DEC-10: Chemical bonding modeling program
    • Pascal, UCSD, Apple II: Color matching program
    • Pascal, CP/M, Z-80 S-100: Modula-2 compiler

    1981:

    • COBOL, IBM360: Automation of the Fort Bragg check control system, used for about 4 years until moved to a microcomputer system



by Robin Snyder  ,  robin@RobinSnyder.com , source: VITA/progs-00 [NV/asp]