Thursday, February 12, 2015

A Note on General Purpose Processors



Team.  As you know, our goal is producing a general purpose web-script for the controller portion of layered type-II model-view-controller web applications. The first iteration of this script will be in JAVA and will take the form of a servlet.

There have been some recent discussions in the Communications of the ACM about the fallacy of general-purpose processors. The article discussed forms of central processing units which are commonly found on a computer’s internal circuit boards. The premise of the article was that calling something such as a graphics processor “general-purpose” was misleading. This is because that author had the fixed notion in his mind that anything which is general-purpose and used for computing should work in any computing application. He felt that these should be considered "special-purpose" processors. There is some validity in this argument; however, it is somewhat overly” rule-based”. In other words, the argument is pedantic.

As you know, processors can be in the form of hardware or software. Also, there are many categories of computing problems. Each category represents a set for which one might produce an application that meets the needs of one or more of its problem instances. If one produces an application that meets the needs of all of the problems within a given set, it is a general-purpose processor for that domain.

So, when one discusses general-purposeness, one must consider the universe of discussion. This also is necessary when one discusses any set. Our universe of discussion is controllers that process text-based markup descriptions of interface views. It might seem somewhat narrow; however, it literally contains an infitude of possible application instances.

This approach in computing is very worthwhile. For one, it promotes a very natural form of code reuse. A general-purpose processor driven by configuration files is much like a method with its parameter list. For those of you who are computing students, remember those lessons on computing history that discussed the advantages of using functions in structured programming versus large monolithic programs. Structured programming is often an after-thought and likely rarely mentioned in many current classrooms with the inherent structure in objects. But the evolution from unstructured-ness through structure that resulted in objects and aspects is worth teaching.

One of the design goals of a popular operating system is expediting the common case of computing. This means that for the normal case, ninety-five percent of the applications it sees, it will perform well and quickly. This is also a wise goal of software engineering processes, accelerating the common case of development. This can be done quite well if one looks for applications in which he might apply the tenets of general-purposeness. These rules are fairly simple. One must balance ease of use and the breadth of the domain. A wider the domain signals a more likely increase in the complexity of the general-purpose engine.

There are a number of places within the JEE technologies that one might create one of these processor. For instance, one might be for JAX-RS root resources. an engineer might also consider developing a framework for creating this. Such a template could be used by different organizations for their unique needs.

We hope that this posting length is not overly tedious. We should also add that the ACM is a wonderful organization. Consider joining, www.acm.org. The ACM needs more participation especially from women and under-represented minority groups. Hunt.Peck.Think. Daydream. Create. La-La.

No comments:

Post a Comment