In the ongoing process of English language conversion of all programs, I am focusing on make today. It has become a misnomer to say that I am doing it in English now. The language and the way it is taught is very much like computer programming for minds and as such it suffers from the same problems. It is assumed that language is something that the King ( or whatever power structure ) requires you to speak for their benefit and not the individual or for any other purpose. Speech is just the sounds or stick figures that are made and signify what they signify ( signal) in a context.
So.. Make is an interesting program and it has a high learning curve and there have been extensions to create automake and autotools. It is more convenient and serves the purpose of meta code generation. In order to understand it completely it requires knowledge all the way down to gcc and the underlying languages and system. In order to make a more generalized form of constructive algorithm I am considering what would be more usable in general and have application in the same general way as learned language.
The concept of dependency and association is central to this and virtually everything. Looking at the problem from the top down, I have a completed program or set of completed programs. I could say this is like building a garage. There are parts and each part has one or more dependencies which are required to associate and combine in the next step. Making it symbolically like a two dimensional graph would be horribly confusing as the lines would cross everywhere as it got more complex and would just look like a hair ball. If it is represented in three dimensional space it can have unlimited connectivity without crossing lines. The parts needed would be like a bill of materials, the methods, STOP or STandard OPerating procedure.
Any step would have a list of things that would be required as they are being combined to produce the product and from one perspective would be a list or set of lists. In order to satisfy the dependencies it would be more obvious at an even lower level that parts of A required a connection to an unknown of a specific form. It should then be reasonable that if the necessary references exist to connect A to X then it can be seen before the process starts that A has no corresponding X to connect to and that this is more easily represented by saying that there is no such thing as what you have described, whether it be a way to do something or a place to put something, or any other thing which can be associated.
That is the complex explanation and the final product would be more like directions to build a garage in steps. The foundation would be things like having the references (.h) the actual libraries (.so) that were referenced, that all the object files had a corresponding source or already existed. It would be much like creating a prefab garage. That is done without a make file and it also uses lists to describe what things to do. The skill set does not have to be trained into the constructor as gcc already exists.
The overall process would be a combination of many parts that would connect at a specific scale. A carpenter does not need to know how to sweat plumbing and the person who does insulation acts at a certain time and does not need to know the cost of nails. I have built many steel and brick buildings when I was very young (teens )and in fact that is what paid for some costs of college. The overall process is very involved and can be a mess if dependencies are not met.
So in the end my make file does not have to have indents and colons and dollar signs. It says that this list of things must be present and that in those things it must there must be other things. For example: In order to make the program you will need 3000 nails and 200 boards and it will take 30 days. So long as the primitive functions exist they can be specified in a normal way like Are there nails? Are there hammers? Are there carpenters?. In this case I might say "Is there a builder?" Gcc is a prerequisite to invoking gcc to link and assemble and this is not really considered. It is assumed that the programmer is actually an architect and laborer both. It is my goal to make it so that a person who wants to build a garage need not be an architect, but just somebody who can get their hands on the plans and materials.
It seems a more reasonable approach to all process. A surgeon needs certain skills and tools to perform their method and it can just as easily be described by its dependencies. In fact any endeavor has this same trait and even here it is necessary for a person to understand these stick figures before they could grasp what I propose. So the foundational dependency is language itself and there is where I go next to look at what different sounds , languages or stick figure characters "make" up the communication between biological organisms. It too must have primitives.
These concepts are applicable across all things. In the cell there are dependencies and products and interactions which are exactly the same. The overall picture is one giant hair ball, but the goal is to avoid adding complexity by using symbols that are overloaded, being more precise about context, and not changing the syntax or creating new words to describe things which can as easily be referenced by their description. For a polymath, this is absolutely imperative. The degree of confusion that ensues from the fact that sciences tend to use the same symbols for widely divergent concepts is wasteful. Lambda calculus, wavelength , the letter L itself. The construction of arbitrary syntax is like creating new Kings and their languages. My opinion is that we need no kings at all, that the core of all this analysis will lead me to a set of primitives that conform to all communication between two points.
In the end, all the process resolves to the physics of the universe. The first dependent element is the existence of a specific structure and relationship there. By forward and backward analysis and the resultant product it can be determined that the structure of the universe and its expression are one in the same and that the measurement of the product exactly reflects the methods which produce it. If I use integer math it is a relationship that branches to uncertainty very quickly, but with infinite math it retains its relationship without loss of certainty. Instead of measuring the relationship it becomes a relationship first and the measure or value is only a side effect that resolves from the process.
I can just as easily forward and backward reference the isolated elements and sets of stick figures I use to communicate.
0 comments:
Post a Comment