go to Elijah Laboratories Inc Home Page

R. J. Brown's Papers

Mr. R. J. Brown is a computer scientist and consultant. He has published several technical papers and articles in recognized refereed journals, and additional work that has only been published on the web.

Published Stuff

  • Dreams, JFAR 1994.
    Dreams is an object oriented extension to the Forth language.

  • TENS -- The Timed Event Network Scheduler, DDJ February 1989.
    The Timed Event Network Scheduler (TENS) is a scheduler with its own high level language well suited to real-time process control and industrial automation applications.

  • Committee Networks: What They Can and Cannot Do, Proceedings of the 1987 Rochester Forth Conference, JFAR Vol. 5 No. 1, 1988.
    The committee network is a 2-layer organization of neurons that has special appeal in certain areas of pattern recognition. It has a binary output, is easy to implement, trains quickly, and has fast response due to only 2 layers of cells. The input pattern may be composed of either discrete binary or continuous analog signals. Although generally quite useful, these networks are incapable of learning all arbitrary associations. A proof is given demonstrating that a binary input network is functionally incomplete over the space of Boolean switching functions.

  • An Efficient Algorithm for Very Large Priority Queues, DDJ June 1987.
    Most simple implementations for priority queues result in the time to perform at least one of the above operations being directly proportional to the size of the queue. For extremely large queues, this becomes unworkable. The problem is similar to sorting, and sorting can be done in time proportional to the logarithm of the number of elements, so we should be able to do as well for a priority queue.

  • An Artificial Neural Network Experiment, DDJ April 1987.
    This paper describes an experimental computer program that could serve as one component of a computer vision system. The program is an artificial neural network learning machine implemented as a committee network of threshold logic units to function as a trainable pattern recognizer for visual images composed of a rectangular array of pixels. Each pixel contains a single number representing the gray scale value of that region of the field of view.

  • The Boca Raton Inference Engine, DDJ April 1986.
    This paper gives an introduction to PROLOG programming, LISP programming, and the underlying mechanisms involved in a PROLOG interpreter. A working micro-PROLOG program demonstrates how logic programming can be used for database applications. A working muLISP program is used to explain the factoring, resolution, and paramodulation rules of inference. A refinement of the resolution algorithm is given that could form the basis for a viable PROLOG interpreter. A discussion explains the PROLOG deduction cycle and backtracking. Lastly, the concept of a programming environment is introduced and explained.

  • Unpublished Stuff

  • shcov -- A Shell Script Coverage Tool
    The shcov package is a set of bash scripts that provides a means to generate a line by line execution trace of a bash shell script by sourcing the file "traps.sh" into the top of the script to be traced. The trace, which is captured in the file "trace.log", contains a line-by-line trace of the script's execution. This data, in turn, is used by the shell script "shcov.sh" to determine and display execution coverage of the traced script(s). This trace may also be useful for general debugging.

  • Code Graphs to Vizualize Your C Code
    The code_graphs package is a set of bash and perl scripts that generates interactive graphical representations of C source and object code. These graphs are in the form of a set of pdf files. They are intended to be viewed interactively in a web browser equiped with a plug-in for a pdf viewer.

  • Szymanski's Mutual Exclusion Algorithm
    Szymanski's algorithm is a mutual exclusion algorithm that works using shared memory and multiple assynchronous processors. It only requires that all participating processors have access to a common region of shared memory, and that only a single read and a single write operation be supported to access that shared memory.

  • Squasher -- Filesystem Backups to Multiple DVDs
    This script attempts to make a set of DVD images (to backup a directory and its children) as squashed filesystems, such that each such image is as nearly as full as possible, without exceeding either the capacity of a single dvd-/+r, or the maximum capacity of a squashsf filesystem.

  • Gentoo Linux RAID Benchmark Timimg Study
    A benchmark timing study on the performance of certain RAID configurations under different versions of the Gentoo Linux operating system.

  • The Faceted Annulus Logo of Elijah Laboratories Inc.
    I trace the history behind the logo of Elijah Laboratories Inc. This has its original inspiration in neural network research and hyperdimensional geometry, but also has fascinating associations with cognition in general, physics, metaphysics, and theology. This ties into current events on the world political scene.

  • The Glucographer glucose charting pages
    The Glucographer is a web-based blood glucose charting service designed for diabetics on the go. With the glucographer, you can enter glucose levels, and produce charts of that data, whenever you have access to the internet. The glucographer keeps track of your previously entered glucose values, so all you need to enter is those recent test results which you have not already entered. You may also edit previously entered values.

  • Gemsvnc -- A Framebuffer Relay Server
    Unlike most Unix hosted VNC servers, which are also X-servers, and serve an X environment that they maintain internally, gemsvnc, like its predecessors x0rfbserver and x11vnc, which is distributed with libvncserver, is only a VNC server, but not an X-server. It attaches to an already running X-server and permits remote control of that X-server from the vncviewer. This is desirable when one is using vnc for a customer service or training tool, or where special graphics hardware (such as openGL) is being used so that a normal vncserver would not work.

  • The Infamous Spam-O-Matic Resume Mailer
    This is the perl source code for an automated web client that does data mining by crawling around the dice jobs board. The email address and job title are extracted from each job ad meeting selection criteria. This is then used to email the jobshop or headhunter a resume.

  • Stegafax -- A Covert Messaging System
    The Stagafax covert messaging system was originally designed for Christian missionaries located in countries where the Christian church must operate underground for fear of reprisals from either the government or activists. It was designed to permit these people to be able to communicate with each other and with their headquarters in the United States without fear of being detected.

  • A Novel C++ Implementation of State Machines
    Finite state machines, or just "state machines" for brevity, are an important concept in the design of systems. Together with dataflow diagrams and entity relationship diagrams, state machines, represented by a state transition graph, sometimes called a state transition diagram, or just a state graph, describe how a given node in a dataflow diagram is to behave. The arrival of events on incoming dataflows causes a deterministic behaviour of that node. This behaviour can be described by a state machine.

  • A C++ class to specify bit-field accesses to registers in an ASIC.
    The bitfields defined by this class may be used just like ordinary variables. When used in an expression, the name of the field fetches the normalized value of the field. When used as the target of an assignment, the RHS is denormalized and stored in the field.

  • A embeddable round robin cooperative multitasker for Forth
    This is about a simple as a tasker can get, yet it is easily extensible to handle fancier needs.

  • Spytrace -- A function call tracing package for Forth
    This file provides a spy trace facility for PFE Ver 0.9.14 under Linux Ver 1.2.8 running on an Intel Pentium processors (or its equivalent). Debugging is aided by providing a display whenever a traced function is entered or exited. Both the calling word and the called word are displayed along with the effected portion of the stack to show passed arguments for entered words and returned values for exited words. This software is provided subject to the terms of the GNU GENERAL PUBLIC LICENSE,

  • Timerq -- a C++ generic leftist heap for priority/timer queues, etc.
    This header file implements a generic template for leftist heaps of objects. A leftist heap is a particularly efficient way to implement a priority queue or timer queue. It is also useful for determining which element is an extremum (maximum or minimum) of a set, or even the n least or n greatest elements of a set.

  • I. Q. Test
    This program implements an A* heuristic state space search of the solution tree for an "IQ test" puzzle that is sold at roadside souveneer stands.

  • The Parable of the Cheese
    This is a humorous story that pokes fun at software development projects.

  • Viva la Spaghetti!
    A Critique of Programming Methodoligies

  • FISH -- Forth In Silicon Hardware
    This is a block diagram of a fast Harvard architecture digital signal processor based on the Forth language.

  • Indego -- An embedded object oriented dialect Forth
    This describes a dialect of the Forth language that targets the MOOSE virtual machine. It features hardware assist for dynamically bound object oriented programming, including very fast context switching. The multithreading model is a unique 2-layered approach with fast hardware assisted provisions for forking, and for exception handling with proper switching of the dynamicly bound environment.

  • Elijah Laboratories Inc. logo Elijah Laboratories Inc. logo

    © 2003 Elijah Laboratories Inc.

    Web page design by Robert J. Brown.
    Last modified: Wed Oct 21 11:37:26 EDT 2020