A multifaceted, versatile software development engineer, computer scientist, mathematician, poet, writer, and lover of cats.
Greetings! I'm William F. Gilreath
(he/him/his) I am a multifaceted senior
machine learning/software engineer, computer scientist,
mathematician, poet, writer, and adore cats.
I love working with software developing, testing,
writing, and analyzing source code. In my spare time, I
write both code and technical articles, and narrative
prose: novels, short stories, book chapters, and
poetry.
This home site illustrates some of the algorithms, code,
programming languages, research papers, and projects I
have created, written, and published.
I am a free agent, a senior machine learning/software
engineer seeking my next job role with the right
organization.
For the curious and intrigued, an ice breaker question I
often get asked is: "How did you get started in software
engineering?" I am more of a writer, so for this frequent
question I have written a five minute reading time short
article describing my path
in software/computer science/coding since I was a
young boy.
Yet other questions I am asked are "What is the most
difficult technical problem you had in your career?" and
"What is a time when you were wrong?" Both these
questions are answered with this short essay about an
experience I had early on
in my career as a software engineer.
My current technical project is
a new programming language "ZeptoN" from "zepto" + "N". A
small programming language (zepto- is a factor of
10-21) that is the Nth programming language
(as programming languages go from 1 to N) where this is
the Nth programming language.
The ZeptoN whitepaper [ epub
| pdf
(6 Mb) ] describes the ZeptoN language, its goals, and
gives many examples with output to illustrate the ZeptoN
programming language.
ZeptoN extends Java by adding a program entity "prog"
construct like a class (without the object-oriented
trimmings), with an implicit program entry point as a block. Yet ZeptoN is
completely Java syntax and concept compatible. ZeptoN
puts the program back into Java programming!
ZeptoN is now available on my GitHub repo for download, or the GitHub page. This is the ZeptoN "Echo"
transcompiler which transpiles to Java, and then uses the
Java Compiler API to build a Java bytecode .class
file.
I have had an article about ZeptoN published on JavaCodeGeeks
explaining how to extend the ZeptoN language.
I have an inactive blog about my technical dabbling and other things...entitled Much Ado About Nothing where I write about this, that, and the other, but not of late. Note that I am not on social media (except LinkedIn) too much melodrama, and I do not want my personal life on the Internet.
I do write an occassional
treatise or essay about a particular theme or topic.
One essay I have recently written is Innovator's Beware that
describes the 25-years time line after creating an
'impossible' algorithm that sorts in linear time
by hashing—yet all the skeptics never got the source code
to see the hash sort algorithm in action. Quod, quod,
fiat.
Here are some of the books I have written...
Computer Architecture: A Minimalist Perspective - explores computer architecuture of a one-instruction set computer the ultimate minimal instruction set.
Computer Architecture: A Minimalist Perspective Exercise Solutions Manual - the exercise solutions manual for Computer Architecture: A Minimalist Perspective problem questions at the end of each chapter.
Non-Negative in Value Absolute in Function—the Cogent Value Function - examines an alternative to the absolute value function, the cogent value function, that is continuous and differentiable at zero.
Will's Elided Java Api Compiler (WEJAC) UserBook - a user book on how to use a elided command-line option Java compiler available on - a user book on how to use a elided command-line option Java compiler available on GitHub.
Here are some theoretical research papers I have written, and have been published.
Division by Zero Fallacies using Transmathematics - examines classic division by zero fallacies but from transmathematics perspective.
Instruction Set Completeness Theorem: Concept, Relevance, Proof, and Example for Processor Architecture - a mathematical examination from formal proof to an example instruction set about the correctness of the theorem.
Non-Negative in Value, but Absolute in Function by a Magnum and Parabolin—the Cogent Value Function - mathematical re-definition of the absolute value function that has different properties and does what the existing absolute value function can not.
The Problem of the Two Couriers - an application of transmathematics to a centuries old algebra problem to illustrate division by zero in practice. The paper was published July 2019 at Transmathematica 2019 – The 2nd International Conference on Total Systems. The presentation given is available as a PDF or as Keynote set of slides.
Check out my Google Scholar or Microsoft Academic with my other works. https://orcid.org/0000-0002-1825-0097 for a list of my published research papers.
Some of the source code I have written for various projects...
Zing - the Zing (zero-packet Internet groper) an open-source network utility implemented in nine programming languages.
ZeptoN - the ZeptoN Echo transcompiler, both source code and a Java binary, for the ZeptoN programming language.
WEJAC - Will's Elided Java Api Compiler, a javac alternative that has simpler and fewer command-line interface (CLI) options. The user manual for WEJAC is available as an e-book on Smashwords in various formats.
DBXShell - the DropBoX shell connects to a DropBox storage account, and perform file and folder operations in command-line interface client.
Boz - compiler for a programming language "Boz" (a pen name of Charles Dickens) developed using the JavaCC compiler-compiler tool.
Hash Sort - sorting by hashing into a matrix.
XML
Tokenizer - XML tokenization into tags,
attributes, text, for an XML token stream.
Binar Shuffle/Sort - shuffle (unsorting) and sorting by using bits of binary datum.
FunCL - (rhymes with "uncle") interpreter for the FUNctor Clause Language, a functional style programming language that is both like Forth and LISP but without the reverse Polish notation or parenthesis.
These are the technical articles I have written:
Smart Shell: Accessing the Google Pathways LLM from a Bash Script - a technical article published by Linux Magazine #282 May 2024 about the PaLM shell that connects to the Google Gemini AI or formerly Pathways LLM that is
implemented as a bash script.
Have a Bash
with the Zing network utility Zinger - a
technical article published by Admin Magazine #77
October 2023 about the zing network utility
implemented as a bash script.
Why the GNU
General Public License v3 for Your Open-Source
Project? - an article about choosing an
open-source license, and why I use the GPL v3
published on HackerNoon July 2023.
Zing Me
- a technical article published by Linux Magazine
#265 December 2022 about the zing (zero-packet
Internet groper) network utility.
Adding
Range Type in Java - a technical article
published by JavaCodeGeeks about adding a range type
into Java.
ZeptoN is
Putting Program into Java - a technical article
published by JavaCodeGeeks about ZeptoN, extending
the transcompiler.
The Problem
with Creating Generic Arrays - a technical
article published by JavaCodeGeeks about resolving a
problem with generic arrays in Java.
XString - a method of
"flattening" an XML document into a linear string;
then an XML document can be handled as a string.
Interestingly, one could embed XML in XML using an
XString.
Hash Sort: A Linear Time Complexity Multi-Dimensional Sorting Algorithm - a sorting algorithm that uses hashing within a N x N matrix.
Binar Sort: A Linear Generalized Sorting Algorithm - a sorting algorithm that partitions like the QuickSort algorithm but uses extracted bits from the datum element to sort the data into an ordered permutation.
Binar Shuffle: Shuffling Bit by Bit - a shuffle algorithm that uses a "bit schedule" to shuffle each datum element into a random permutation.
Mynx Programming Language - the user manual for a programming language I developed that is Pascal/Algol-style syntax, but an object-oriented programming language.
Boz
Programming Language - the user manual for the
the Boz programming language that I developed that is
a "duck typed" object-oriented programming
language.
I am a multifaceted senior software engineer, computer scientist, mathematician, poet, writer, and lover of cats. I have been writing code starting from when I was a boy, and now in many programming languages, frameworks, operating systems, for multiple platforms over 30+ years.