Programming D. E. Knuth in Python with the Deterministic Finite Automaton construct

Evan Driscoll driscoll at cs.wisc.edu
Sat Mar 17 22:59:31 EDT 2012


On 3/17/2012 9:03, Antti J Ylikoski wrote:
> 
> In his legendary book series The Art of Computer Programming,
> Professor Donald E. Knuth presents many of his algorithms in the form
> that they have been divided in several individual phases, with
> instructions to GOTO to another phase interspersed in the text of the
> individual phases.
> 
> 
> A1.  (Do the work of Phase A1.)  If <zap> then go to Phase A5,
> otherwise continue.
> 
> A2.  (Do some work.) If <zorp> go to Phase A4.
> 
> A3.  (Some more work.)
> 
> A4.  (Do something.)  If <condition ZZZ> go to Phase A1.
> 
> A5.  (Something more).  If <foobar> then go to Phase A2, otherwise
> end.

Clearly you just need the goto module (http://entrian.com/goto/):

  from goto import goto, label

  label .A1
  # do work of phase A1
  if <zap>: goto .A5

  label .A2
  # do some work
  if <zorp>: goto .A4

  # do some more work

  label .A4
  # do something
  if <condition zzz>: goto .A1

  label .A5
  # something more
  if <foobar>: goto .A2

Clearly the best solution of all.

(Note: do not actually do this.)

Evan

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 552 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-list/attachments/20120317/4d4f14ed/attachment-0001.sig>


More information about the Python-list mailing list