The revised version is also easier to read and reason about. Consider doing a code review on Figure 1 versus Figure 3, especially a scaled-up version with lots of cases.
For a Strong Digital Europe
Presented as a table, it feels less tedious to scan. The act of choosing a less-than-Turing way to express the problem requires you to be more precise. The idea is that by applying the PLE, we can write clearer code that better reveals how we think about the problem. A mechanical application of the PLE cannot create simplicity from a tangled understanding. When they are in your head, your thoughts are not subject to a compiler, type checker, or regression tests; but in code, they are. This is true even without using the PLE.
Volume 5, Number 2, March-April 1988
Using the PLE leads you to poke and prod the idea more thoroughly and from new angles. Consider our format and decoder example again. Once the relationship was expressed as a table, perhaps you wondered if the relationship also works in the reverse direction. Perhaps you thought about what should happen if more than one decoder works on a format—should that be expressed in our table and the choice among the suitable decoders pushed into the lookup code? And if your math classes stuck with you, perhaps you even considered if the relationship was injective, surjective, or bijective. These kinds of questions naturally arise from the way the idea is structured—in this case, as a table—and may not arise in other representations.
When you structure your code as a state machine, you reasonably ask what the legal state transitions are.
As is so often true, Fred Brooks talked about this a long time ago :. Much more often, strategic breakthrough will come from redoing the representation of the data or tables. This is where the heart of a program lies. Show me your flowcharts and conceal your tables, and I shall continue to be mystified.
By using the PLE, we reveal our thoughts to readers in the least complicated way. But the connection that makes me so delighted is the way it leads to exactly the kind of critical thinking that hones our thoughts. But more often, it has led to insights because what I was manipulating is no longer obscured by too-powerful language. I find a lot of software developers write code and comments that are blandly noncommittal about their precise thoughts about the problem domain. If constructive criticism is what you want and it is , then you want to be as clear as possible to trigger exactly that reaction.
Imagine a program expressed in a Turing-complete language that adds up some areas and then, ta-da, returns a number that it claims is the total area. Bogen, A.
January Rio de Janeiro, Brazil. June , , Las Vegas, Nevada. Noosa Heads, Australia.
August October Best Paper Award. September, Nara, Japan, October Best Paper Award Shull, F. Book Chapters Jankun-Kelly, T. Lecture Notes in Computer Science.
Reidar Conradi and Alf Inge Wang. Springer-Verlag Heidelberg, Shull, F.
Natalie Juristo and Ana Moreno. World Scientific, Travassos, G. Academic Press, October 23, Baldassarre, M. May 18, San Francisco. June , Washington, DC. May 19, Tuscon, AZ. October 21, Kakar, A. A Survey. June 4, , Zurich, Switzerland. Kosar, T. Dubrovnik, Croatia. May 28, May 23, , Waikiki, Honolulu, Hawaii. May 16, Anchorage, Alaska. Slides Heaton, D. October 18, Reno, Nevada.
May 32, Amsterdam, The Netherlands. May 4, Cape Town, South Africa. Jankun-Kelly, T. Proceedings of the Workshop on Visualization for Cyber Security. October 11, Atlantic City, NJ.
Jeffrey C. Carver's Publications
Halverson, C. October 29, Orlando, Florida.
- Submission history.
- REFEREED JOURNAL PUBLICATIONS.
- Getting Along Famously: A Celebration of Friendship;
- Careers in the Gaming Industry.
- Laser Applications in Medicine and Biology: Volume 3.
October 25, Vancouver, Canada. Cambridge, MA. Furtado , Gustavo Pinto , Cleidson R. Montreal, Canada, Gothenburg, Sweden, Accepted for Information and Software Technology, 97, May Campobasso, Italy, Accepted to the Empirical Software Engineering journal, 23, , Oulu, Finland, Accepted for Journal of Brazilian Computer Society, 24, , Gustavo Pinto , Fernando Castor. Communications of the ACM 60 12 , December Illinois, USA, Da Silva. Buenos Aires, Argentina, Karlskrona, Sweden, Savannah, EUA,