{"papers":[{"url":"https://www.semanticscholar.org/paper/Structured-Programming-with-go-to-Statements-Knuth/3fdae4603265209ddf420cfaa9cbd0286c567c6c?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Structured Programming with go to Statements","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"ACM Comput. Surv.","year":1974,"stats":{"influentialCitations":26,"estimatedTotalCitations":{"min":392.46153794874107,"value":460.46153794874107,"max":539.4615379487411,"confidence":0.9},"velocity":{"min":19.915761044098755,"value":21.810263196332574,"max":24.011228932015985,"confidence":0.9},"acceleration":{"min":0.23943661971830985,"value":0.2394366197183098,"max":0.23943661971830982,"confidence":0.9}},"journal":{"name":"ACM Comput. Surv.","volume":"6","pages":"261-301"},"paperAbstract":"ion is easily understood in terms of B N F notation. A metalinguistic category like (assignment statement) is an abstraction which is composed of two abstractions (a (left part list) and an (arithmetic expression)), each of which is composed of abstractions such as (identifier) or (term), etc. We understand the program syntax as a whole by knowing the structural details tha t relate these abstract parts. The most difficult things to understand about a program's syntax are the identifiers, since their meaning is passed across several levels of structure. I f all identifiers of an ALGOL program wer~ changed to random meaningless strings of symbols, we would have great difficulty seeing what the type of a variable is and what the program means, but we would still easily recognize the more local features, such as assignment statements, expressions, subscripts, etc. (This inability for our eyes to associate a type or mode with an identifier has led to what I believe are fundamental errors of human engineering in the design of ALGOL 68, but that 's another story. M y own notation for stacks in Example 6e suffers from the same problem; it works in these examples chiefly because t is lower case and S is upper case.) Larger nested structures are harder for the eye to see unless they are indented, but indentation makes the structure plain. I t would probably be still better if we changed our source language concept so that the program wouldn't appear as one long string. John McCar thy says \"I find it difficult to believe that whenever I see a tree I am really seeing a string of symbols.\" Instead, we should give meaningful names to the larger constructs in our program that correspond to meaningful levels of abstraction, and we should define those levels of abstraction in one place, and merely use their names (instead of including the detailed code) when they are used to build larger concepts. Procedure names do this, but the language could easily be designed so that no action of calling a subroutine is implied. From these remarks it is clear tha t sequential composition, iteration, and conditional statements present syntactic structures tha t the eye can readily assimilate; but a go to statement does not. The visual structure of go to statements is like that of flowcharts, except reduced to one dimension in our source languages. In two dimensions it is possible to perceive go to structure in small examples, but we rapidly lose our ability to understand larger and larger flowcharts; some intermediate levels of abstraction are necessary. As an under-ion are necessary. As an undergraduate, in 1959, I published an octopus flowchart which I sincerely hope is the most horribly complicated that will ever appear in print; anyone who believes tha t flowcharts are the best way to understand a program is urged to look at this example [49]. (See also [32, p. 54] for a nice illustration of how go to 's make a P L / I program obscure, and see R. Lawrence Clark's hilarious spoof about linear representation of flowcharts by means of a \" c o m e f r o m s ta tement\" [13].) I have felt for a long time that a t~dent for programming consists largely of the ability to switch readily from microscopic to macroscopic views of things, i.e., to change levels of abstraction fluently. I mentioned this [55] to Dijkstra, and he replied [29] with an excellent analysis of the situation: I feel somewhat guilty when I have suggested that the distinction or introduction of \"different levels of abstraction\" allow you to think about only one level at a time, ignoring completely the other levels. This is not true. You are trying to organize your thoughts; that is, you are seeking to arrange matters in such a way that you can concentrate on some portion, say with 90% of your conscious thinking, while the rest is temporarily moved away somewhat towards the background of your mind. But that is something quite different from \"ignoring completely\": you allow yourself temporarily to ignore details, but some overall appreciation of what is supposed to be or to come there continues to play a vital role. You remain alert for little red lamps that suddenly start flickering in the corners of your eye. I asked t toare for a short definition of structured programming, and he replied that it is \" the systematic use of abstraction to control a mass of detail, and also a means of documentation which aids program design.\" Computing Surveys, Vol. 6, No. 4, December 1974 Structured Programming with go t o ~Stah~ments • 293 I hope that my remarks above have made the abstract concept of abstraction clear; the second par t of Hoare's definition (which was also stressed by Dijkstra in his original paper [25]) states tha t a good way to express the abstract properties of an unwritten piece of program often helps us to write that program, and to \"know\" that it is correct as we write it. Syntactic structure is just one par t of the picture, and B N F would be worthless if the syntactic constructs did not correspond to semantic abstractions. Similarly, a good program will be composed in such a way that each semantic level of abstraction has a reasonably simple relation to its constituent parts. We noticed in our discussion of Jacopini's theorem that every program can trivially be expressed in terms of a simple iteration which simulates a computer; but tha t iteration has to carry the entire behavior of the program through the loop, so it is worthless as a level of abstraction. An iteration statement should have a purpose that is reasonably easy to state; typically, this purpose is to make a certain Boolean relation true while maintaining a certain invariant condition satisfied by the variables. The Boolean condition is stated in the program, while the invariant should be stated in a comment, unless it is easily supplied by the reader. For example, the invariant in Example 1 is tha t A[k] ~ x for 1 ~ /~ ~ i, and in Example 2 it is the same, plus the additional relation Aim-k 1] = x. Both of these are so obvious that I didn't bother to mention them; but in Examples 6e and 8, I stated the more complicated invariants that arose. In each of those cases the program almost wrote itself once the proper invariant was given. Note that an \"invariant assertion\" actually does vary slightly as we execute statements of the]oop, bu t it comes back to its original form when we repeat the loop. Thus, an iteration makes a good abstraction if we can assign a meaningful invariant describing the local states of affairs as it executes, and if we can describe its purpose (e.g., to change one state to another). Similarly, an i f . t h e n . else . tl statement will be a good abstraction if we can state an overall purpose, for the statement as a whole. ! We also need well-structured data; i.e., as we write the program we should have an abstract idea of what each variable means.idea of what each variable means. This idea is also usually describable as an invariant relation, e.g.,: \"m is the number of items in the table\" or \"x is the search argument\" Or \"L[t] is the number of the root node of node t's left subtree, or 0 if this subtree is empty\" or \"the contents of stack S are postponed obligations to do such and such\". Now let's consider the slightly more complex case of an event-driven construct. This should also correspond to a meaningful abstraction, and our examples show what ision, and our examples show what is involved: For each event we give an (invariant) assertion which describes the situation which must hold when that event occurs, and for the loop u n t i l we also give an invariant for the loop. An event s tatement typically corresponds to an abrupt change in conditions so tha t a different assertion from the loop invariant is necessary. An error exit can be considered wellstructured for precisely t h i s \\ r easoni t corresponds to a situation that is~impossible according to the local invariant assertions; it is easiest to formulate assertions that assume nothing will go ~ o n g , rather than to make the invariants cover all contingencies. When we jump out to an error exit we go to another level of abstraction having different assumptions. As another simple example, consider binary search in an ordered array using the invariant relation A[i] < x < A[j]: l o o p w h i l e i ~ l < j ; k := ( i+j) + 2; i f A[k] < x t h e n i :ffi k; e l se i f A [ k ] > x t h e n j :ffi k; e l se cannot preserve the invariant fi; fi; repeat; Upon normal exit from this loop, the conditions i -b l ~ j and A[i] < x < A[3] imply that A[i] < x < A[i-kl], i.e., tha t x is not present. If the program comes to \"cannot preserve the iinvariant\" (because x = A[k]), it wants to go to another set of assumptions. The event-driven construct Computing Surveys ~ol. 6, No. 4, December 1974 294 • Donald E. Knuth provides a level at which it is appropriate to specify the other assumptions. Another good illustration occurs in Example 6g; the purpose of the main i f statement is to find the first node whose A value should be printed. If there is no such t, the event \"finished\" has clearly occurred; it is bet ter to regard the i f s tatement as having the stated abstract purpose without considering that t might not exist. With go to Statements We can also consider go t o statements from the same point of view; when do they correspond to a good abstraction? We've already mentioned tha t go to ' s do not have a syntactic structure tha t the eye can grasp automatically; but in this respect they are no worse off than variables and other identifiers. When these are given a meaningful name corresponding to the abstraction (N.B. not a numeric label!), we need not apologize for the lack of syntactic structure. And the appropriate abstraction itself is an invariant essentially like the assertions specified for an event. In other words, we can indeed consider go to statements as par t of systematic abstraction; all we need is a clearcut notion of exactly what it means to go to each label. This should come as no great surprise. After all, a lot of computer programs have been written using go to statements during the last 25 years, and these programs haven ' t all been failures! Some programmers have clearly been able to master structure and exploit it; not as consistently, perhaps, as in modern-day structured programming, bu t not inflexibly either. By now, many people who have never had any special difficulty writing correct programs have naturally been somewhat upset after being branded as sinners, especially when they know perfectly well what they ' re doing; so they have understandably been less than enthusiastic about \"structured programming\" as it has been advertised to them. My. feeling is tha t it 's certainly possible to write well-structured programs with go t o statements. For example, Dijkstra 's 1965 program about concurrent process control [24] used three go to statements, all of which were perfectly easy to understand; and I think at most two of these would have disappeared from his code if ALGOL 60 had had a whi le statement. But go to is hardly ever the best alternative now, since bet ter language features are appearing. If the invariant for a label is closely related to another invariant, we can usually save complexity by combining those two into one abstraction, using something other thanion, using something other than go to for the combination. There is also another problem, namely at what level of abstraction should we introduce a label? This however is like the analogous problem for variables, and the general answer is still unclear in both cases. Aspects of data structure are often postponed, bu t sometimes variables are defined and passed as \"parameters\" to other levels of abstraction. There seems to be no clearcut idea as yet about a set of syntax conventions, relating to the definition of variables, which would be most appropriate to structured programming methodology; but for each particular problem there seems to be an","sourceIds":["journals/csur/Knuth74"]},{"url":"https://www.semanticscholar.org/paper/On-the-LambertW-function-Corless-Gonnet/2bc0144228ecee16e40dc94a085cd85bb1541c8e?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"On the LambertW function","authors":[{"name":"Robert M. Corless","url":"https://www.semanticscholar.org/author/Robert-M-Corless/2119294"},{"name":"Gaston H. Gonnet","url":"https://www.semanticscholar.org/author/Gaston-H-Gonnet/3134435"},{"name":"D. E. G. Hare","url":"https://www.semanticscholar.org/author/D-E-G-Hare/8809713"},{"name":"David J. Jeffrey","url":"https://www.semanticscholar.org/author/David-J-Jeffrey/3350328"},{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Adv. Comput. Math.","year":1996,"stats":{"influentialCitations":71,"estimatedTotalCitations":{"min":1185.044073274118,"value":1311.044073274118,"max":1449.044073274118,"confidence":0.9},"velocity":{"min":104.14129674944182,"value":110.27876896182293,"max":117.00076233728795,"confidence":0.9},"acceleration":{"min":-0.08309455587392556,"value":-0.08309455587392554,"max":-0.08309455587392554,"confidence":0.9}},"journal":{"name":"Adv. Comput. Math.","volume":"5","pages":"329-359"},"paperAbstract":"The Lambert W function is de ned to be the multivalued inverse of the function w we It has many applications in pure and applied mathematics some of which are brie y described here We present a new discussion of the complex branches of W an asymptotic expansion valid for all branches an e cient numerical procedure for evaluating the function to arbitrary precision and a method for the symbolic integration of expressions containing W On the Lambert W function Introduction In Lambert solved the trinomial equation x q x by giving a series develop ment for x in powers of q Later he extended the series to give powers of x as well In Euler transformed Lambert s equation into the more symmetrical form","sourceIds":["journals/adcm/CorlessGHJK96"]},{"url":"https://www.semanticscholar.org/paper/The-art-of-computer-programming-Volume-I-Fundament-Knuth/6b2a23349099f95c1c4850bb1d4731612a7046e6?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The art of computer programming, Volume I: Fundamental Algorithms, 3rd Edition","authors":[{"name":"Donald Ervin Knuth","url":"https://www.semanticscholar.org/author/Donald-Ervin-Knuth/23847327"}],"venue":"","year":1997,"stats":{"influentialCitations":129,"estimatedTotalCitations":{"min":1904.958811864075,"value":2053.958811864075,"max":2214.958811864075,"confidence":0.9},"velocity":{"min":109.21282124731908,"value":114.005743547208,"max":119.18467301218864,"confidence":0.9},"acceleration":{"min":-0.00578034682080921,"value":-0.0057803468208092275,"max":-0.00578034682080922,"confidence":0.9}},"journal":{"pages":"I-XIX, 1-650"},"sourceIds":["books/lib/Knuth97"]},{"url":"https://www.semanticscholar.org/paper/The-Art-of-Computer-Programming-Volume-III-Sorting-Knuth/9a925d73aae2b8c1aa6b4eb2a90d2d93c8d5e3c4?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The Art of Computer Programming, Volume III: Sorting and Searching","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"","year":1973,"stats":{"influentialCitations":492,"estimatedTotalCitations":{"min":5802.239464350254,"value":6071.239464350254,"max":6352.239464350254,"confidence":0.9},"velocity":{"min":159.35068901719282,"value":163.53506974680818,"max":167.906114300793,"confidence":0.9},"acceleration":{"min":0.023255813953488403,"value":0.02325581395348836,"max":0.023255813953488358,"confidence":0.9}},"sourceIds":["books/aw/Knuth73"]},{"url":"https://www.semanticscholar.org/paper/Review-of-Algorithmic-Barriers-Falling-P-NP-by-Don-Gasarch/671baa8d5f405c11a0c27378c9c8017b1b1ed9d8?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of: Algorithmic Barriers Falling: P=NP? by Donald E. Knuth and Edgar G. Daylight and The Essential Knuth by Donald E. Knuth and Edgar G. Daylight","authors":[{"name":"William I. Gasarch","url":"https://www.semanticscholar.org/author/William-I-Gasarch/1740486"}],"venue":"SIGACT News","year":2015,"stats":{},"journal":{"name":"SIGACT News","volume":"46","pages":"21-22"},"paperAbstract":"Both of these books are Edgar Daylight interviewing Donald Knuth. They talk on many topics including computer science, mathematics, and the history of science. Given Donald Knuth’s place in our history his perspective is worth listening to. Algorithmic Barriers Falling: P=NP? (henceforth ALG) is more about algorithms and theory, The Essential Knuth (henceforth KNU) is more about Knuth. While Knuth is making his points he seems to not be criticizing others. I’m not saying he is careful to not criticize others, I think being nice just comes naturally to him. As an example, when discussing pointer machines and RAM’s he says the following: RAM’s and pointer machines are polynomially equivalent. They differ only when we make finer distinctions, like between linear time and nα(n) (α is the inverse of Ackerman’s function). The pointer model hasn’t become more popular than the RAM model, because complexity theorists are happiest with a model that makes it easiest to prove theorems. Those guys have a right to study polynomial fuzzy models, because those models identify fundamental aspects of computation. But such models aren’t especially relevant to my own work as a programmer. I treat them with respect but I don’t spend too much time with them when they’re not going to help me with the practical problems.","sourceIds":["journals/sigact/Gasarch15e"]},{"url":"https://www.semanticscholar.org/paper/The-art-of-computer-programming-Volume-III-2nd-Edi-Knuth/74d502b677abdc7c15a6925c3262cda0794cc3c9?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The art of computer programming, , Volume III, 2nd Edition","authors":[{"name":"Donald Ervin Knuth","url":"https://www.semanticscholar.org/author/Donald-Ervin-Knuth/23847327"}],"venue":"","year":1998,"stats":{"influentialCitations":133,"estimatedTotalCitations":{"min":1194.623743335777,"value":1302.623743335777,"max":1420.623743335777,"confidence":0.9},"velocity":{"min":64.51822899056238,"value":67.78531645913233,"max":71.35491202664393,"confidence":0.9},"acceleration":{"min":0.14285714285714282,"value":0.14285714285714285,"max":0.1428571428571429,"confidence":0.9}},"journal":{"pages":"I-XIII, 1-780"},"sourceIds":["books/lib/Knuth98a"]},{"url":"https://www.semanticscholar.org/paper/The-art-of-computer-programming-Volume-II-Seminume-Knuth/a83a16010825d9ba9d57baf5a5ff52347b684d6c?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The art of computer programming, Volume II: Seminumerical Algorithms, 3rd Edition","authors":[{"name":"Donald Ervin Knuth","url":"https://www.semanticscholar.org/author/Donald-Ervin-Knuth/23847327"}],"venue":"","year":1998,"stats":{"influentialCitations":189,"estimatedTotalCitations":{"min":2022.1701718945274,"value":2180.1701718945274,"max":2349.1701718945274,"confidence":0.9},"velocity":{"min":76.37421349118254,"value":79.73589974728543,"max":83.33162745159801,"confidence":0.9},"acceleration":{"min":0.11304347826086952,"value":0.11304347826086948,"max":0.11304347826086948,"confidence":0.9}},"journal":{"pages":"I-XIII, 1-762"},"sourceIds":["books/lib/Knuth98"]},{"url":"https://www.semanticscholar.org/paper/An-Empirical-Study-of-FORTRAN-Programs-Knuth/1a37d73677328521578b45cd47af43ff60096c39?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"An Empirical Study of FORTRAN Programs","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Softw., Pract. Exper.","year":1971,"stats":{"influentialCitations":16,"estimatedTotalCitations":{"min":343.4486484205907,"value":392.4486484205907,"max":449.4486484205907,"confidence":0.9},"velocity":{"min":5.757934448126363,"value":6.348679710507639,"max":7.035873178991981,"confidence":0.9}},"journal":{"name":"Softw., Pract. Exper.","volume":"1","pages":"105-133"},"sourceIds":["journals/spe/Knuth71"]},{"url":"https://www.semanticscholar.org/paper/The-Birth-of-the-Giant-Component-Janson-Knuth/3e2d96652b9170c70e781d0eb91ba7da963b9c3a?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The Birth of the Giant Component","authors":[{"name":"Svante Janson","url":"https://www.semanticscholar.org/author/Svante-Janson/1732375"},{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"},{"name":"Tomasz Luczak","url":"https://www.semanticscholar.org/author/Tomasz-Luczak/1698759"},{"name":"Boris Pittel","url":"https://www.semanticscholar.org/author/Boris-Pittel/1716582"}],"venue":"Random Struct. Algorithms","year":1993,"stats":{"influentialCitations":22,"estimatedTotalCitations":{"min":229.16616415423704,"value":269.16616415423704,"max":317.16616415423704,"confidence":0.9},"velocity":{"min":8.762438069950418,"value":9.631181014935036,"max":10.673672548916576,"confidence":0.9}},"journal":{"name":"Random Struct. Algorithms","volume":"4","pages":"233-359"},"sourceIds":["journals/rsa/JansonKLP93"]},{"url":"https://www.semanticscholar.org/paper/Randomized-incremental-construction-of-Delaunay-an-Guibas-Knuth/99b226fd0855dd35ffd5d7b027c1c37a5f57e9e8?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Randomized incremental construction of Delaunay and Voronoi diagrams","authors":[{"name":"Leonidas J. Guibas","url":"https://www.semanticscholar.org/author/Leonidas-J-Guibas/1744254"},{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"},{"name":"Micha Sharir","url":"https://www.semanticscholar.org/author/Micha-Sharir/1704273"}],"venue":"Algorithmica","year":1990,"stats":{"influentialCitations":33,"estimatedTotalCitations":{"min":386.8808686879399,"value":453.8808686879399,"max":531.8808686879399,"confidence":0.9},"velocity":{"min":10.874849840562483,"value":12.05526875665179,"max":13.429487793293072,"confidence":0.9}},"journal":{"name":"Algorithmica","volume":"7","pages":"381-413"},"paperAbstract":"In this paper we give a new randomized incremental algorithm for the construction of planar Voronoi diagrams and Delaunay triangulations. The new algorithm is more “on-line” than earlier similar methods, takes expected timeO(nℝgn) and spaceO(n), and is eminently practical to implement. The analysis of the algorithm is also interesting in its own right and can serve as a model for many similar questions in both two and three dimensions. Finally we demonstrate how this approach for constructing Voronoi diagrams obviates the need for building a separate point-location structure for nearest-neighbor queries.","sourceIds":["conf/icalp/GuibasKS90","journals/algorithmica/GuibasKS92"]},{"url":"https://www.semanticscholar.org/paper/Digital-Halftones-by-Dot-Diffusion-Knuth/01850e81ae46219abaed11ce458cf590ef0f16d7?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Digital Halftones by Dot Diffusion","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"ACM Trans. Graph.","year":1987,"stats":{"influentialCitations":12,"estimatedTotalCitations":{"min":199.2849521255409,"value":252.2849521255409,"max":318.28495212554094,"confidence":0.9},"velocity":{"min":7.868313807212893,"value":9.04959145857146,"max":10.520616458376468,"confidence":0.9}},"journal":{"name":"ACM Trans. Graph.","volume":"6","pages":"245-273"},"paperAbstract":"This paper describes a technique for approximating real-valued pixels by two-valued pixels. The new method, called dot diffusion, appears to avoid some deficiencies of other commonly used techniques. It requires approximately the same total number of arithmetic operations as the Floyd-Steinberg method of adaptive grayscale, and it is well suited to parallel computation; but it requires more buffers and more complex program logic than other methods when implemented sequentially. A “smooth” variant of the method may prove to be useful in high-resolution printing.","sourceIds":["journals/tog/Knuth87"]},{"url":"https://www.semanticscholar.org/paper/Optimum-binary-search-trees-Knuth/af3a22c938bbb13efdb916e2c4e716f1919ab5a3?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Optimum binary search trees","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Acta Informatica","year":1971,"stats":{"influentialCitations":33,"estimatedTotalCitations":{"min":258.3223903529255,"value":309.3223903529255,"max":370.3223903529255,"confidence":0.9},"velocity":{"min":12.363516696747368,"value":13.671707860902783,"max":15.236407096461221,"confidence":0.9},"acceleration":{"min":-0.05882352941176474,"value":-0.058823529411764774,"max":-0.05882352941176473,"confidence":0.9}},"journal":{"name":"Acta Informatica","volume":"1","pages":"14-25"},"paperAbstract":"[IRa] Rattliff, F. : Mach bands. Qualitative studies on neural networks in the retina. San Francisco: Holden Day Inc. 1965. [Rei] Reichardt, W. : (3bex das optische AuflSsungsverm6gen der Facettenaugen von Limulus. Kybernetik 1, 57--69 (1961). [Rei-McGi] Reichardt, W.-McGinnitie, G.: Zur Theorie dcr lateralen Inhibition. Kybernetik 1, t 55--t65 (1962). [Schu] Schubert, H.: Topologie. Stuttgart: B. G. Teubner t964. [Va] Varga, R.S. : Matrix iterative analysis. Englewood Cliffs, New Jersey: Prentice Hall Inc. t 962. Iv. Se] Seelen, W. yon: Informationsverarbeitung in homogenen Netzen yon NeuronenmodeUen. Dissertation an der Fakultlit fiir Maschinenwesen der Technischen Hochschule Hannover, 1967. [Wa] Walter, H.: Inhibitionsfelder. Dissertation an der Mathematisch-Naturwissenschaftlichen Fakultiit des Saarlandes, Saarbriicken, t968.","sourceIds":["journals/acta/Knuth71"]},{"url":"https://www.semanticscholar.org/paper/Dynamic-Huffman-Coding-Knuth/8dae04813f1005a31a84affe7158ff456eb880aa?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Dynamic Huffman Coding","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"J. Algorithms","year":1985,"stats":{"influentialCitations":13,"estimatedTotalCitations":{"min":207.2755854102973,"value":259.2755854102973,"max":324.2755854102973,"confidence":0.9},"velocity":{"min":6.361792614834083,"value":7.255448480617372,"max":8.372518312846486,"confidence":0.9}},"journal":{"name":"J. Algorithms","volume":"6","pages":"163-180"},"sourceIds":["journals/jal/Knuth85"]},{"url":"https://www.semanticscholar.org/paper/A-Generalization-of-Dijkstra-s-Algorithm-Knuth/4771ee61809206700e8c3658f0e49448cf2037c5?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"A Generalization of Dijkstra's Algorithm","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Inf. Process. Lett.","year":1977,"stats":{"influentialCitations":18,"estimatedTotalCitations":{"min":135.71588029745536,"value":171.71588029745536,"max":217.71588029745536,"confidence":0.9},"velocity":{"min":11.381566066149796,"value":12.966679202612596,"max":14.992101543648397,"confidence":0.9},"acceleration":{"min":0.14285714285714282,"value":0.14285714285714282,"max":0.14285714285714285,"confidence":0.9}},"journal":{"name":"Inf. Process. Lett.","volume":"6","pages":"1-5"},"sourceIds":["journals/ipl/Knuth77"]},{"url":"https://www.semanticscholar.org/paper/Efficient-balanced-codes-Knuth/9152b63048150ed0a138291730cbe0f32b17fe20?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Efficient balanced codes","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"IEEE Trans. Information Theory","year":1986,"stats":{"influentialCitations":37,"estimatedTotalCitations":{"min":128.58067387014765,"value":164.58067387014765,"max":210.58067387014765,"confidence":0.9},"velocity":{"min":12.250861498091531,"value":14.139233150356326,"max":16.552152483805784,"confidence":0.9},"acceleration":{"min":0.19999999999999993,"value":0.19999999999999998,"max":0.1999999999999999,"confidence":0.9}},"journal":{"name":"IEEE Trans. Information Theory","volume":"32","pages":"51-53"},"paperAbstract":"A BINARY word of length m can be called balanced if it contains exactly lm/2] ones and [m/21 zeros. Let us say that a balanced code with n information bits and p parity bits is a set of 2” balanced binary words, each of length n + p. Balanced codes have the property that no codeword is “contained” in another; that is, the positions of the ones in one codeword will never be a subset of the positions of the ones in a different codeword. This property makes balanced codes attractive for certain applications, such as the encoding of unchangeable data on a laser disk [2]. Conversely, if we wish to form as many binary words of length m as possible with the property that no word is contained in another, Sperner’s lemma [3] tells us that we can do no better than to construct the set of all balanced words of length m . A balanced code is efficient if there is a very simple way to encode and decode n-bit numbers. In other words, we want to find a one-to-one correspondence between the set of all n-bit binary words and the set of all (n + p)-bit codewords such that, if w corresponds to w’, we can rapidly compute w’ from w and vice versa. Furthermore, we want p to be very small compared with n, so that the code is efficient in its use of space as well as time. For example, it is trivial to construct a balanced code with n information bits and n parity bits by simply letting the binary word w correspond to the codeword w’ = wW, where W is the complement of w. Encoding and decoding is clearly efficient in this case, but memory space is being wasted.","sourceIds":["journals/tit/Knuth86"]},{"url":"https://www.semanticscholar.org/paper/The-Problem-of-Compatible-Representatives-Knuth-Raghunathan/b06aaf536b4521dbae01995638097bbfc0e720d1?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The Problem of Compatible Representatives","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"},{"name":"Arvind Raghunathan","url":"https://www.semanticscholar.org/author/Arvind-Raghunathan/2468481"}],"venue":"SIAM J. Discrete Math.","year":1992,"stats":{"influentialCitations":14,"estimatedTotalCitations":{"min":112.64225056032348,"value":151.64225056032348,"max":203.64225056032348,"confidence":0.9},"velocity":{"min":7.86029897974883,"value":9.288627883324656,"max":11.19306642142576,"confidence":0.9}},"journal":{"name":"SIAM J. Discrete Math.","volume":"5","pages":"422-427"},"paperAbstract":"The purpose of this note is to attach a name to a natural class of combinatorial problems and to point out that this class includes many important special cases. We also show that a simple problem of placing nonoverlapping labels on a rectangular map is NP-complete.","sourceIds":["journals/siamdm/KnuthR92"]},{"url":"https://www.semanticscholar.org/paper/Mathematical-Analysis-of-Algorithms-Knuth/2a4a05e28b006f09fd0ba317f3ab1c5ed78df0c8?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Mathematical Analysis of Algorithms","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"IFIP Congress","year":1971,"stats":{"influentialCitations":17,"estimatedTotalCitations":{"min":138.62463800594344,"value":175.62463800594344,"max":222.62463800594344,"confidence":0.9},"velocity":{"min":9.721117604781877,"value":11.070356455502845,"max":12.784254455067314,"confidence":0.9},"acceleration":{"min":-0.02439024390243916,"value":-0.024390243902439095,"max":-0.02439024390243914,"confidence":0.9}},"journal":{"pages":"19-27"},"sourceIds":["conf/ifip/Knuth71"]},{"url":"https://www.semanticscholar.org/paper/Axioms-and-Hulls-Knuth/7203746aedee6bd4dcfa7064d77bbfde6a03ee79?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Axioms and Hulls","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Lecture Notes in Computer Science","year":1992,"stats":{"influentialCitations":20,"estimatedTotalCitations":{"min":104.91340280860678,"value":134.91340280860678,"max":174.91340280860678,"confidence":0.9},"velocity":{"min":7.349320925440195,"value":8.669134317018909,"max":10.428885505790527,"confidence":0.9}},"journal":{"volume":"606"},"sourceIds":["books/sp/Knuth92"]},{"url":"https://www.semanticscholar.org/paper/Breaking-Paragraphs-into-Lines-Knuth-Plass/0ed30a53d7cd562eb3c98af78c4dd9fcfd9fa1e5?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Breaking Paragraphs into Lines","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"},{"name":"Michael F. Plass","url":"https://www.semanticscholar.org/author/Michael-F-Plass/3185485"}],"venue":"Softw., Pract. Exper.","year":1981,"stats":{"influentialCitations":18,"estimatedTotalCitations":{"min":103.9885308627577,"value":137.9885308627577,"max":182.9885308627577,"confidence":0.9},"velocity":{"min":5.8308842080547825,"value":6.879770057259999,"max":8.268001328266903,"confidence":0.9}},"journal":{"name":"Softw., Pract. Exper.","volume":"11","pages":"1119-1184"},"paperAbstract":"This paper discusses a new approach to the problem of dividing the text of a paragraph into lines of approximately equal length. Instead of simply making decisions one line at a time, the method considers the paragraph as a whole, so that the final appearance of a given line might be influenced by the text on succeeding lines. A system based on three simple primitive concepts called ‘boxes’, ‘glue’, and ‘penalties’ provides the ability to deal satisfactorily with a wide variety of typesetting problems in a unified framework, using a single algorithm that determines optimum breakpoints. The algorithm avoids backtracking by a judicious use of the techniques of dynamic programming. Extensive computational experience confirms that the approach is both efficient and effective in producing high-quality output. The paper concludes with a brief history of line-breaking methods, and an appendix presents a simplified algorithm that requires comparatively few resources.","sourceIds":["journals/spe/KnuthP81"]},{"url":"https://www.semanticscholar.org/paper/Semantics-of-context-free-languages-Knuth/0b61a17906637ece5a9c5e7e3e6de93378209706?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Semantics of context-free languages","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Mathematical systems theory","year":1968,"stats":{"influentialCitations":92,"estimatedTotalCitations":{"min":1427.2479566457912,"value":1559.2479566457912,"max":1703.2479566457912,"confidence":0.9},"velocity":{"min":37.32424404120153,"value":39.2784411736753,"max":41.4102925909194,"confidence":0.9},"acceleration":{"min":0.046728971962616724,"value":0.046728971962616786,"max":0.046728971962616814,"confidence":0.9}},"journal":{"name":"Mathematical systems theory","volume":"2","pages":"127-145"},"paperAbstract":"“Meaning” may be assigned to a string in a context-free language by defining “attributes” of the symbols in a derivation tree for that string. The attributes can be defined by functions associated with each production in the grammar. This paper examines the implications of this process when some of the attributes are “synthesized”, i.e., defined solely in terms of attributes of thedescendants of the corresponding nonterminal symbol, while other attributes are “inherited”, i.e., defined in terms of attributes of theancestors of the nonterminal symbol. An algorithm is given which detects when such semantic rules could possibly lead to circular definition of some attributes. An example is given of a simple programming language defined with both inherited and synthesized attributes, and the method of definition is compared to other techniques for formal specification of semantics which have appeared in the literature.","sourceIds":["journals/mst/Knuth68"]},{"url":"https://www.semanticscholar.org/paper/Concrete-mathematics-a-foundation-for-computer-sci-Graham-Knuth/62ed6d4155c9872314d7b67416401344b442fb8f?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Concrete mathematics - a foundation for computer science (2. ed.)","authors":[{"name":"Ronald L. Graham","url":"https://www.semanticscholar.org/author/Ronald-L-Graham/1724174"},{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"},{"name":"Oren Patashnik","url":"https://www.semanticscholar.org/author/Oren-Patashnik/2819477"}],"venue":"","year":1994,"stats":{"influentialCitations":41,"estimatedTotalCitations":{"min":702.7146399694933,"value":782.7146399694933,"max":872.7146399694933,"confidence":0.9},"velocity":{"min":26.487624639389225,"value":28.19099338873175,"max":30.107283231742088,"confidence":0.9},"acceleration":{"min":-0.19999999999999996,"value":-0.2,"max":-0.2,"confidence":0.9}},"journal":{"pages":"I-XIII, 1-657"},"sourceIds":["books/daglib/0076724"]},{"url":"https://www.semanticscholar.org/paper/The-Art-of-Computer-Programming-Volume-I-Fundament-Knuth/08e6eca6d996d840498816f8febae02337509b86?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"","year":1973,"stats":{"influentialCitations":55,"estimatedTotalCitations":{"min":607.5634481505334,"value":688.5634481505334,"max":780.5634481505334,"confidence":0.9},"velocity":{"min":10.518949548054875,"value":11.348871836524848,"max":12.291499620959877,"confidence":0.9}},"journal":{"pages":"I-XXI, 1-634"},"sourceIds":["books/aw/Knuth73a"]},{"url":"https://www.semanticscholar.org/paper/The-Art-of-Computer-Programming-Volume-I-Fundament-Knuth/bd3102fa60685380af4c0d9da94237978d40b5bc?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The Art of Computer Programming, Volume I: Fundamental Algorithms","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"","year":1968,"stats":{"influentialCitations":64,"estimatedTotalCitations":{"min":1117.552049637645,"value":1236.552049637645,"max":1367.552049637645,"confidence":0.9},"velocity":{"min":26.27502946956163,"value":27.870868525025276,"max":29.62763252725837,"confidence":0.9},"acceleration":{"min":0.1428571428571429,"value":0.14285714285714285,"max":0.14285714285714285,"confidence":0.9}},"sourceIds":["books/aw/Knuth68"]},{"url":"https://www.semanticscholar.org/paper/The-Stanford-GraphBase-a-platform-for-combinatoria-Knuth/b9dc985b40ab9146093e7088f012db99e8d7172b?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The Stanford GraphBase - a platform for combinatorial computing","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"","year":1993,"stats":{"influentialCitations":75,"estimatedTotalCitations":{"min":655.6952040386172,"value":748.6952040386172,"max":853.6952040386172,"confidence":0.9},"velocity":{"min":58.8218163296643,"value":63.41231271644906,"max":68.59513121765765,"confidence":0.9},"acceleration":{"min":-0.06542056074766366,"value":-0.0654205607476636,"max":-0.06542056074766356,"confidence":0.9}},"journal":{"pages":"I-VII, 1-576"},"paperAbstract":"The programs are intended to be interesting in themselves as examples of “literate programming.” Thus, the Stanford GraphBase can also be regarded as a collection of approximately 30 essays for programmers to enjoy reading, whether or not they are doing algorithmic research. The programs are written in CWEB, a combination of TEX and C that is easy to use by anyone who knows those languages and easy to read by anyone familiar with the rudiments of C. (The CWEB system is itself portable and in the public domain.)","sourceIds":["books/daglib/0071477"]},{"url":"https://www.semanticscholar.org/paper/An-Analysis-of-Alpha-Beta-Pruning-Knuth-Moore/c876c5fed5b6a3a91b5f55e1f776d629cc8ed9bc?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"An Analysis of Alpha-Beta Pruning","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"},{"name":"Ronald W. Moore","url":"https://www.semanticscholar.org/author/Ronald-W-Moore/21415719"}],"venue":"Artif. Intell.","year":1975,"stats":{"influentialCitations":45,"estimatedTotalCitations":{"min":550.4486608364232,"value":628.4486608364232,"max":717.4486608364232,"confidence":0.9},"velocity":{"min":21.523782829337524,"value":23.209751678617902,"max":25.133485365617307,"confidence":0.9},"acceleration":{"min":0.1428571428571428,"value":0.1428571428571428,"max":0.14285714285714282,"confidence":0.9}},"journal":{"name":"Artif. Intell.","volume":"6","pages":"293-326"},"sourceIds":["journals/ai/KnuthM75"]},{"url":"https://www.semanticscholar.org/paper/Literate-Programming-Knuth/81ecd7489020252e34ff8e5e82ca98964b9b3135?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Literate Programming","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Comput. J.","year":1984,"stats":{"influentialCitations":35,"estimatedTotalCitations":{"min":517.481758410517,"value":593.481758410517,"max":681.481758410517,"confidence":0.9},"velocity":{"min":22.317110757050454,"value":24.110196435427255,"max":26.186400905126714,"confidence":0.9},"acceleration":{"min":0.0,"value":0.0,"max":0.0,"confidence":0.9}},"journal":{"name":"Comput. J.","volume":"27","pages":"97-111"},"paperAbstract":"The past ten years have witnessed substantial improvements in programming methodology. This advance, carried out under the banner of “structured programming,” has led to programs that are more reliable and easier to comprehend; yet the results are not entirely satisfactory. My purpose in the present paper is to propose another motto that may be appropriate for the next decade, as we attempt to make further progress in the state of the art. I believe that the time is ripe for significantly better documentation of programs, and that we can best achieve this by considering programs to be works of literature. Hence, my title: “Literate Programming.” Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means. He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding, using a mixture of formal and informal methods that rëınforce each other. I dare to suggest that such advances in documentation are possible because of the experiences I’ve had during the past several years while working intensively on software development. By making use of several ideas that have existed for a long time, and by applying them systematically in a slightly new way, I’ve stumbled across a method of composing programs that excites me very much. In fact, my enthusiasm is so great that I must warn the reader to discount much of what I shall say as the ravings of a fanatic who thinks he has just seen a great light. Programming is a very personal activity, so I can’t be certain that what has worked for me will work for everybody. Yet the impact of this new approach on my own style has been profound, and my excitement has continued unabated for more than two years. I enjoy the new methodology so much that it is hard for me to refrain from going back to every program that I’ve ever written and recasting it in “literate” form. I find myself unable to resist working on programming tasks that I would ordinarily have assigned to student research assistants; and why? Because it seems to me that at last I’m able to write programs as they should be written. My programs are not only explained better than ever before; they also are better programs, because the new methodology encourages me to do a better job. For these reasons I am compelled to write this paper, in hopes that my experiences will prove to be relevant to others. I must confess that there may also be a bit of malice in my choice of a title. During the 1970s I was coerced like everybody else into adopting the ideas of structured programming, because I couldn’t bear to be found guilty of writing unstructured programs. Now I have a chance to get even. By coining the phrase “literate programming,” I am imposing a moral commitment on everyone who hears the term; surely nobody wants to admit writing an illiterate program.","sourceIds":["journals/cj/Knuth84"]},{"url":"https://www.semanticscholar.org/paper/On-the-Translation-of-Languages-from-Left-to-Rigth-Knuth/fc230d6b4e6d275bff21b64dd0f457f07a92055f?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"On the Translation of Languages from Left to Rigth","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Information and Control","year":1965,"stats":{"influentialCitations":36,"estimatedTotalCitations":{"min":474.78169387437947,"value":545.7816938743795,"max":627.7816938743795,"confidence":0.9},"velocity":{"min":17.430184974866147,"value":18.85356990947821,"max":20.497479270579465,"confidence":0.9},"acceleration":{"min":-0.08196721311475409,"value":-0.08196721311475413,"max":-0.08196721311475422,"confidence":0.9}},"journal":{"name":"Information and Control","volume":"8","pages":"607-639"},"paperAbstract":"There has been much recent interest in languages whose grammar is sufficiently simple that an efficient left-to-right parsing algorithm can be mechanically produced from the grammar. In this paper, we define LR(k) grammars, which are perhaps the most general ones of this type, and they provide the basis for understanding all of the special tricks which have been used in the construction of parsing algorithms for languages with simple structure, e.g. algebraic languages. We give algorithms for deciding if a given grammar satisfies the LR (k) condition, for given k, and also give methods for generating recognizers for LR(k) grammars. I t is shown that the problem of whether or not a grammar is LR(k) for some k is undecidable, and the paper concludes by establishing various connections between LR(k) grammars and deterministic languages. In particular, the LR(]c) condition is a natural analogue, for grammars, of the deterministic condition, for languages.","sourceIds":["journals/iandc/Knuth65"]},{"url":"https://www.semanticscholar.org/paper/Concrete-mathematics-a-foundation-for-computer-sci-Graham-Knuth/1a6e46c02824033c44433fb43cfb7098df60ac1b?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Concrete mathematics - a foundation for computer science","authors":[{"name":"Ronald L. Graham","url":"https://www.semanticscholar.org/author/Ronald-L-Graham/1724174"},{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"},{"name":"Oren Patashnik","url":"https://www.semanticscholar.org/author/Oren-Patashnik/2819477"}],"venue":"","year":1989,"stats":{"influentialCitations":78,"estimatedTotalCitations":{"min":1483.1789210697514,"value":1608.1789210697514,"max":1744.1789210697514,"confidence":0.9},"velocity":{"min":78.33124858806042,"value":82.02005426220954,"max":86.03347483568376,"confidence":0.9},"acceleration":{"min":-0.01123595505617982,"value":-0.011235955056179848,"max":-0.011235955056179888,"confidence":0.9}},"journal":{"pages":"I-XIII, 1-623"},"sourceIds":["books/daglib/0068021"]},{"url":"https://www.semanticscholar.org/paper/The-Art-of-Computer-Programming-Volume-II-Seminume-Knuth/a0c6bd744a82dca055731df419d552578058b7d6?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The Art of Computer Programming, Volume II: Seminumerical Algorithms, 2nd Edition","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"","year":1981,"stats":{"influentialCitations":213,"estimatedTotalCitations":{"min":2200.28613150983,"value":2368.28613150983,"max":2548.28613150983,"confidence":0.9},"velocity":{"min":50.83275745194879,"value":53.0617377430186,"max":55.449930912021976,"confidence":0.9},"acceleration":{"min":-0.007299270072992657,"value":-0.0072992700729927,"max":-0.007299270072992665,"confidence":0.9}},"sourceIds":["books/aw/Knuth81"]},{"url":"https://www.semanticscholar.org/paper/The-Art-of-Computer-Programming-Volume-II-Seminume-Knuth/0a5ae7306a68fc3b96302c1cd645c86341b73aee?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The Art of Computer Programming, Volume II: Seminumerical Algorithms","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"","year":1969,"stats":{"influentialCitations":83,"estimatedTotalCitations":{"min":1225.180171087893,"value":1354.180171087893,"max":1495.180171087893,"confidence":0.9},"velocity":{"min":29.995036694244035,"value":31.92995881441092,"max":34.044873689942165,"confidence":0.9},"acceleration":{"min":-0.4366197183098592,"value":-0.4366197183098592,"max":-0.43661971830985913,"confidence":0.9}},"journal":{"pages":"I-XI, 1-624"},"sourceIds":["books/aw/Knuth69"]},{"url":"https://www.semanticscholar.org/paper/The-Sandwich-Theorem-Knuth/80171441964f00a06642667434bcb34aace72da7?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The Sandwich Theorem","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Electr. J. Comb.","year":1994,"stats":{"influentialCitations":10,"estimatedTotalCitations":{"min":178.6707228395925,"value":224.6707228395925,"max":282.6707228395925,"confidence":0.9},"velocity":{"min":8.455286801516884,"value":9.61705279914467,"max":11.081888187457965,"confidence":0.9}},"journal":{"name":"Electr. J. Comb.","volume":"1"},"paperAbstract":"This report contains expository notes about a function ti(G) that is popularly known as the Lovasz number of a graph G. There are many ways to define G(G), and the surprising variety of different characterizations indicates in itself that ti(G) should be interesting. But the most interesting property of 8(G) is probably the fact that it can be computed efficiently, although it lies “sandwiched” between other classic graph numbers whose computation is NP-hard. I have tried to make these notes self-contained so that they might serve as an elementary introduction to the growing literature on Lovasz’s fascinating function. The Sandwich Theorem DEK notes last revised 6 December 1993 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Orthogonal labelings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Convex labelings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monotonicity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The theta function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alternative definitions of ti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Characterization via eigenvalues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A complementary characterization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elementary facts about cones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definite proof of a semidefinite fact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Another characterization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The final link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The main theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The main converse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Another look at TH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zero weights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nonzero weights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simple examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The direct sum ofgraphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The direct cosum of graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A direct product of graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A direct coproduct of graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Odd cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comments on the previous example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Regular graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automorphisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Consequence for eigenvalues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Further examples of symmetric graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A bound on ti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compatible matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Antiblockers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Perfect graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A characterization of perfection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Another definition of 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Facets ofTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Orthogonal labelings in a perfect graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The smallest non-perfect graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Perplexing questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 4 5 6 6 8 8 9 11 12 13 14 14 15 16 17 17 19 19 20 21 22 24 27 27 28 30 30 31 32 35 36 37 39 40 42 43 45 The Sandwich Theorem It is NP-complete to compute w(G), the size of the largest clique in a graph G, and it is NP-complete to compute x(G), the minimum number of colors needed to color the vertices of G. But Grotschel, Lovasz, and Schrijver proved [5] that we can compute in polynomial time a real number that is “sandwiched” between these hard-to-compute integers: w(G) I g(c) L x(G). ( > * Lovasz [ 131 called this a “sandwich theorem.” The book [7] develops further facts about the function 6(G) and shows that it possesses many interesting properties. Therefore I think it’s worthwhile to study ti(G) closely, in hopes of getting acquainted with it and finding faster ways to compute it. Caution: The function called d(G) in [13] is called G(c) in [7] and [12]. I am following the latter convention because it is more likely to be adopted by other researchers-[71 is a classic book that contains complete proofs, while [13] is simply an extended abstract. In these notes I am mostly following [ 71 and [la] with minor simplifications and a few additions. I mention several natural problems that I was not able to solve immediately although I expect (and fondly hope) that they will be resolved before I get to writing this portion of my forthcoming book on Combinatorial Algorithms. I’m grateful to many people-especially to Martin Grotschel and L&z16 Lovasz--for their comments on my first drafts of this material. These notes are in numbered sections, and there is at most one Lemma, Theorem, Corollary, or Example in each section. Thus, “Lemma 2” will mean “the lemma in section 2” . 0. Preliminaries. Let’s begin slowly by defining some notational conventions and by stating some basic things that will be assumed without proof. All vectors in these notes will be regarded as column vectors, indexed either by the vertices of a graph or by integers. The notation J: 2 y, when II: and y are vectors, will mean that xV > yV for all v. If A is a matrix, A, will denote column v, and A,,,, will be the element in row u of column v. The zero vector and the zero matrix and zero itself will all be denoted by 0. We will use several properties of matrices and vectors of real numbers that are familiar to everyone who works with linear algebra but not to everyone who studies graph theory, so it seems wise to list them here: (i) The dot product of (column) vectors a and b is","sourceIds":["journals/combinatorics/Knuth94"]},{"url":"https://www.semanticscholar.org/paper/Satisfiability-and-The-Art-of-Computer-Programming-Knuth/a454985f5fa11b756142b8e2174a495e64c7d3a9?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Satisfiability and The Art of Computer Programming","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"SAT","year":2012,"stats":{"influentialCitations":24,"estimatedTotalCitations":{"min":259.13632947223795,"value":314.13632947223795,"max":380.13632947223795,"confidence":0.9},"velocity":{"min":33.696331774493125,"value":37.63748525805261,"max":42.36686943832399,"confidence":0.9},"acceleration":{"min":0.14285714285714277,"value":0.1428571428571428,"max":0.14285714285714285,"confidence":0.9}},"journal":{"pages":"15"},"sourceIds":["conf/sat/Knuth12"]},{"url":"https://www.semanticscholar.org/paper/Review-of-selected-papers-on-discrete-mathematics-Apon/a4a102cf8785be4236ceb56a5bbceae27511cf1d?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of selected papers on discrete mathematics by Donald E. Knuth","authors":[{"name":"Daniel Apon","url":"https://www.semanticscholar.org/author/Daniel-Apon/1903102"}],"venue":"SIGACT News","year":2014,"stats":{},"journal":{"name":"SIGACT News","volume":"45","pages":"10-13"},"paperAbstract":"Selected Papers on Discrete Mathematics is a 2003 collection of forty-one of Knuth’s papers on discrete mathematics, bringing together “almost everything [he] has written about mathematical topics during the past four decades.” This is the sixth entry in a nine-volume series archiving Knuth’s published papers. The full series in order is: (i) Literate Programming, (ii) Selected Papers on Computer Science, (iii) Digital Typography, (iv) Selected Papers on Analysis of Algorithms, (v) Selected Papers on Computer Languages, (vi) the current book, (vii) Selected Papers on Design of Algorithms, (viii) Selected Papers on Fun and Games, and (ix) Companion to the Papers of Donald Knuth. While not designed as a textbook, this book is huge and covers a number of diverse topics in great detail. Measuring nearly 800 pages before the index, the book contains something on almost every fundamental area of discrete mathematics: mathematical notation, permutations, partitions, identities, recurrences, combinatorial designs, matrix theory, number theory, graph theory, probability theory, and a dash of algebra. As if to emphasize this point, the final two papers in the book (both dedicated to Paul Erdős) comprise an intensive, nearly 200-page study of the properties of “randomly-generated (evolving) graphs” first initiated in a classic 1959 paper of Erdős and Rényi. In the sequel, I give a chapter-by-chapter summary of the book. For lack of space, I can only briefly skim over a few chapters, but I have tried to go into more depth on some of the parts I found most interesting and rewarding. Afterward, I conclude with my opinion of the book.","sourceIds":["journals/sigact/Apon14"]},{"url":"https://www.semanticscholar.org/paper/Review-of-companion-to-the-papers-of-Donald-Knuth-Gasarch/06a3deebd8da67428531ab86779e58bd6462c38b?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of companion to the papers of Donald Knuth by Donald E. Knuth","authors":[{"name":"William I. Gasarch","url":"https://www.semanticscholar.org/author/William-I-Gasarch/1740486"}],"venue":"SIGACT News","year":2014,"stats":{},"journal":{"name":"SIGACT News","volume":"45","pages":"19-21"},"paperAbstract":"The problems are all problems that he posed in other journals. They vary tremendously in their scope and difficulty. The essays are interesting and short so they make their point quickly. The essay that really gets to the heart of what makes Knuth a great researcher is Theory and Practice and Fun which says in just 2 pages that we should be driven by our curiosity and a sense of fun. The conversations I will discuss in the next section of this review. The list of papers is very nicely annotated. Most papers have brief summaries. There is a list available online http://www-cs-faculty.stanford.edu/ ̃knuth/vita.pdf but it does not have the summaries. In this modern electronic age it would be good to have the papers themselves all online at some website, as has been done for Paul Erdős (http://www.renyi.hu/ ̃p_erdos/) and Ronald Graham. (http://www.math.ucsd.edu/ ̃ronspubs/). The index is useful if you have all of the other books.","sourceIds":["journals/sigact/Gasarch14b"]},{"url":"https://www.semanticscholar.org/paper/Review-of-selected-papers-on-design-of-algorithms-Apon/a2cfd3abe5f2828f52789996e48bcb21e12b03f8?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of selected papers on design of algorithms by Donald E. Knuth","authors":[{"name":"Daniel Apon","url":"https://www.semanticscholar.org/author/Daniel-Apon/1903102"}],"venue":"SIGACT News","year":2014,"stats":{},"journal":{"name":"SIGACT News","volume":"45","pages":"14-16"},"paperAbstract":"Selected Papers on Design of Algorithms is a compilation of twenty-seven of Knuth’s technical papers focusing on the design of new algorithms. This is the seventh entry in a nine-volume series archiving Knuth’s published papers. The full series in order is: (i) Literate Programming, (ii) Selected Papers on Computer Science, (iii) Digital Typography, (iv) Selected Papers on Analysis of Algorithms, (v) Selected Papers on Computer Languages, (vi) Selected Papers on Discrete Mathematics, (vii) the current book, (viii) Selected Papers on Fun and Games, and (ix) Companion to the Papers of Donald Knuth. The papers are revised for errors, and cover a range of algorithmic topics – from combinatorics and optimization, to algebra and theorem proving, to managing error in numerical computations. To quote from the back cover of the book:","sourceIds":["journals/sigact/Apon14a"]},{"url":"https://www.semanticscholar.org/paper/Review-of-selected-papers-on-fun-games-by-Donald-E-Gasarch/085768e8da41b2af6ebc283c25287ded17a33091?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of selected papers on fun & games by Donald E. Knuth","authors":[{"name":"William I. Gasarch","url":"https://www.semanticscholar.org/author/William-I-Gasarch/1740486"}],"venue":"SIGACT News","year":2014,"stats":{},"journal":{"name":"SIGACT News","volume":"45","pages":"17-19"},"paperAbstract":"Recently Donald Knuth had his publisher send me five books of his Selected papers to review for my column. Knuth said that this book, Selected Papers on Fun & Games, was his favorite. After reading every word of its 700+ pages I can see why. The book format and the topic allows him to put in whatever he finds interesting. By contrast his book Selected Papers on Discrete Math has to have all papers on . . . Discrete Math. In the preface he says I’ve never been able to see the boundary between scientific research and game playing. This book also blurs the distinction between recreational and serious research, between math and computer science, and between light and heavy reading. By the latter I mean that many of the chapters are easy to read— if you skip details. Many of the topics in the book come from things either he noticed or people told him leading to a math or CS problem of interest. Hence he is in many of the chapters as a character. I will do the same: here is a story that happened to ME but it’s the KIND OF THING that happens to him quite often. I was having dinner with my darling and two other couples. We were sitting at a rectangular table and I noticed that I sat across from my darling while the other two couples sat next to each other. I then thought: If there are n couples sitting down to eat at a rectangular table how many ways can they do it if everyone sits next to or across from their darling. I solved it and I invite my readers to do the same. There are 72 = 49 papers in this book. Its hard to find a theme that ties them together except Stuff that Donald Knuth thinks is fun and hopefully you will too!. That makes the book hard to summarize. Hence I will just comment on some of the chapters. I try to pick a representative sample. One of the best features: many of the chapters have addenda that were added just recently. This is excellent since an old article needs some commentary about what happened next?.","sourceIds":["journals/sigact/Gasarch14a"]},{"url":"https://www.semanticscholar.org/paper/14th-Knuth-prize-call-for-nominations-Kannan/d7520ece3e8e94e664f627351396bb8bfb8f33f5?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"14th Knuth prize: call for nominations","authors":[{"name":"Ravi Kannan","url":"https://www.semanticscholar.org/author/Ravi-Kannan/1709080"}],"venue":"SIGACT News","year":2014,"stats":{},"journal":{"name":"SIGACT News","volume":"45","pages":"7-8"},"paperAbstract":"The Donald E. Knuth Prize for outstanding contributions to the foundations of computer science is awarded every 1.5 years by the ACM Special Interest Group on Algorithms and Computing Theory (SIGACT) and the IEEE Technical Committee on the Mathematical Foundations of Computing (TCMFC). The Prize is awarded for major research accomplishments and contributions to the foundations of computer science over an extended period of time. The first Knuth Prize was presented at the 1996 ACM Symposium on Theory of Computing (STOC). Prizes are now presented alternately at STOC and the IEEE Symposium on Foundations of Computer Science (FOCS) with occasional adjustments to ensure that the prize is presented at STOC when STOC is part of the ACM Federated Computing Research Conference. The winner is invited to give a lecture at the conference.","sourceIds":["journals/sigact/Kannan14"]},{"url":"https://www.semanticscholar.org/paper/A-Sequence-of-Series-for-the-Lambert-W-Function-Corless-Jeffrey/4b4b7b7b91d411de9d768f79ff1228b16c34eb82?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"A Sequence of Series for the Lambert W Function","authors":[{"name":"Robert M. Corless","url":"https://www.semanticscholar.org/author/Robert-M-Corless/2119294"},{"name":"David J. Jeffrey","url":"https://www.semanticscholar.org/author/David-J-Jeffrey/3350328"},{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"ISSAC","year":1997,"stats":{"estimatedTotalCitations":{"min":37.757673178580525,"value":58.757673178580525,"max":91.75767317858052,"confidence":0.9},"velocity":{"min":3.5129762885580447,"value":4.89647276488171,"max":7.070538656247471,"confidence":0.9}},"journal":{"pages":"197-204"},"paperAbstract":"We give a uniform treatment of several series expansions for the Lambert W function, leading to an innnite family of new series. We also discuss standardization, complex branches, a family of arbitrary-order iterative methods for computation of W, and give a theorem showing how to correctly solve another simple and frequently occurring nonlinear equation in terms of W and the unwinding number.","sourceIds":["conf/issac/CorlessJK97"]},{"url":"https://www.semanticscholar.org/paper/Fast-Pattern-Matching-in-Strings-Knuth-Morris/44799559a1067e06b5a6bf052f8f10637707928f?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Fast Pattern Matching in Strings","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"},{"name":"James H. Morris","url":"https://www.semanticscholar.org/author/James-H-Morris/20287148"},{"name":"Vaughan R. Pratt","url":"https://www.semanticscholar.org/author/Vaughan-R-Pratt/1691192"}],"venue":"SIAM J. Comput.","year":1977,"stats":{"influentialCitations":147,"estimatedTotalCitations":{"min":2096.001704254549,"value":2266.001704254549,"max":2448.001704254549,"confidence":0.9},"velocity":{"min":93.09736032294455,"value":97.31295662442848,"max":101.82612442954657,"confidence":0.9},"acceleration":{"min":-0.010309278350515497,"value":-0.010309278350515432,"max":-0.010309278350515441,"confidence":0.9}},"journal":{"name":"SIAM J. Comput.","volume":"6","pages":"323-350"},"paperAbstract":"An algorithm is presented which finds all occurrences of one. given string within another, in running time proportional to the sum of the lengths of the strings. The constant of proportionality is low enough to make this algorithm of practical use, and the procedure can also be extended to deal with some more general pattern-matching problems. A theoretical application of the algorithm shows that the set of concatenations of even palindromes, i.e., the language {can}*, can be recognized in linear time. Other algorithms which run even faster on the average are also considered. Key words, pattern, string, text-editing, pattern-matching, trie memory, searching, period of a string, palindrome, optimum algorithm, Fibonacci string, regular expression Text-editing programs are often required to search through a string of characters looking for instances of a given \"pattern\" string; we wish to find all positions, or perhaps only the leftmost position, in which the pattern occurs as a contiguous substring of the text. For example, c a e n a r y contains the pattern e n, but we do not regard c a n a r y as a substring. The obvious way to search for a matching pattern is to try searching at every starting position of the text, abandoning the search as soon as an incorrect character is found. But this approach can be very inefficient, for example when we are looking for an occurrence of aaaaaaab in aaaaaaaaaaaaaab. When the pattern is a\"b and the text is a2\"b, we will find ourselves making (n + 1) comparisons of characters. Furthermore, the traditional approach involves \"backing up\" the input text as we go through it, and this can add annoying complications when we consider the buffering operations that are frequently involved. In this paper we describe a pattern-matching algorithm which finds all occurrences of a pattern of length rn within a text of length n in O(rn + n) units of time, without \"backing up\" the input text. The algorithm needs only O(m) locations of internal memory if the text is read from an external file, and only O(log m) units of time elapse between consecutive single-character inputs. All of the constants of proportionality implied by these \"O\" formulas are independent of the alphabet size. * Received by the editors August 29, 1974, and in revised form April 7, 1976. t Computer Science Department, Stanford University, Stanford, California 94305. The work of this author was supported in part by the National Science Foundation under Grant GJ 36473X and by the Office of Naval Research under Contract NR 044-402. Xerox Palo Alto Research Center, Palo Alto, California 94304. The work of this author was supported in part by the National Science Foundation under Grant GP 7635 at the University of California, Berkeley. Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts 02139. The work of this author was supported in part by the National Science Foundation under Grant GP-6945 at University of California, Berkeley, and under Grant GJ-992 at Stanford University.","sourceIds":["journals/siamcomp/KnuthMP77"]},{"url":"https://www.semanticscholar.org/paper/The-tears-of-Donald-Knuth-Haigh/5d07e10e303ce66ac054149b42124be7b8d50db1?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The tears of Donald Knuth","authors":[{"name":"Thomas Haigh","url":"https://www.semanticscholar.org/author/Thomas-Haigh/1714013"}],"venue":"Commun. ACM","year":2014,"stats":{},"journal":{"name":"Commun. ACM","volume":"58","pages":"40-44"},"paperAbstract":"Has the history of computing taken a tragic turn?","sourceIds":["journals/cacm/Haigh15"]},{"url":"https://www.semanticscholar.org/paper/Don-Knuth-Mastermind-of-Algorithms-review-of-The-a-Strawn/d979731c7af5288143c31572da540fb979e6b266?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Don Knuth: Mastermind of Algorithms [review of \"The art of programming\"]","authors":[{"name":"George Strawn","url":"https://www.semanticscholar.org/author/George-Strawn/2013713"}],"venue":"IT Professional","year":2014,"stats":{},"journal":{"name":"IT Professional","volume":"16","pages":"70-72"},"sourceIds":["journals/itpro/Strawn14d"]},{"url":"https://www.semanticscholar.org/paper/Companion-to-the-papers-of-Donald-Knuth-Knuth/b2014b656efeb3753b4ff74a08789edcb41aed28?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Companion to the papers of Donald Knuth","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"CSLI lecture notes series","year":2012,"stats":{},"journal":{"volume":"202","pages":"I-XIII, 1-441"},"paperAbstract":"companion to the papers of donald knuth. Book lovers, when you need a new book to read, find the book here. Never worry not to find what you need. Is the companion to the papers of donald knuth your needed book now? That's true; you are really a good reader. This is a perfect book that comes from great author to share with you. The book offers the best experience and lesson to take, not only take, but also learn.","sourceIds":["books/daglib/0030428"]},{"url":"https://www.semanticscholar.org/paper/DONALD-E-KNUTH-to-receive-the-2011-Abacus-award-fr-Popyack/a6cad7fca8d2de88cd5947ab5b2c7aba7ee2dae6?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"DONALD E. KNUTH to receive the 2011 Abacus award from UPSILON PI EPSILON","authors":[{"name":"Jeffrey L. Popyack","url":"https://www.semanticscholar.org/author/Jeffrey-L-Popyack/3157530"}],"venue":"Inroads","year":2011,"stats":{},"journal":{"name":"Inroads","volume":"2","pages":"26-27"},"paperAbstract":"The Executive Council of Upsilon Pi Epsilon is proud to announce that Stanford Computer Scientist Prof. Donald Ervin Knuth is the recipient of the 2011 Abacus Award. This award will include a specially engraved abacus and a cash award. It will be presented at the 2011 UPE Annual Convention, held in Dallas, Texas on March 11, 2011 in conjunction with the ACM SIGCSE Annual Symposium. Prof. Knuth, Professor Emeritus of The Art of Computer Programming at Stanford, will address the convention attendees following the award presentation. In lieu of a static presentation, Prof. Knuth will conduct an interactive dialog with attendees, entitled “All Questions Answered”. UPE’s most prestigious award acknowledges that while the computing and information disciplines arose in the twentieth century, “the heritage of computing ... stems to the origins of humanity. The Abacus, the earliest and most used calculating device, symbolizes this heritage” [6]. The Abacus Award was created for the purpose “of recognizing outstanding individuals who have provided extensive support and leadership for student-related activities in the computing sciences”. Prof. Knuth has been the recipient of most of the major science and related awards including the fi rst ACM Grace Murray Hopper Award (1971), Turing Award (1974), National Medal of Science (1979), John von Neumann Medal (1995), Harvey Prize (1995), and the Kyoto Prize (1996). Numerous biographical articles have been written about Prof. Knuth. We refer readers here to an interview published in Stanford Magazine [5], his website [3], and of course, his page on Wikipedia (with the usual disclaimers). These are strongly recommended readings for people intending to attend his Q&A session. Knuth’s technical writings in the computing and mathematics fi elds are well known to ACM members. His writings in other fi elds may be less familiar. His book “3:16 Bible Texts Illuminated” [1] resulted from a year-long Bible study series he conducted. Employing a systematic study via stratifi ed sampling, he selected chapter 3, verse 16 from each book of the Bible (for which such a verse exists) and delved into the meaning, backstory, and implications thereof. He has also published transcripts of a series of public lectures on the subject of faith and science, “Things a Computer Scientist Rarely Talks About” [2]. Included is a lecture entitled “God and Computer Science,” which examines topics from the point of view of a computer scientist. Allow me to conclude with a few tidbits gleaned from the sources cited below:","sourceIds":["journals/inroads/Popyack11"]},{"url":"https://www.semanticscholar.org/paper/Validating-the-Knuth-Morris-Pratt-Failure-Function-Gawrychowski-Jez/00f71596f5e9f59132bd9c33bf80abb7399efdae?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Validating the Knuth-Morris-Pratt Failure Function, Fast and Online","authors":[{"name":"Pawel Gawrychowski","url":"https://www.semanticscholar.org/author/Pawel-Gawrychowski/1683786"},{"name":"Artur Jez","url":"https://www.semanticscholar.org/author/Artur-Jez/2987078"},{"name":"Lukasz Jez","url":"https://www.semanticscholar.org/author/Lukasz-Jez/1821870"}],"venue":"Theory of Computing Systems","year":2010,"stats":{},"journal":{"name":"Theory of Computing Systems","volume":"54","pages":"337-372"},"paperAbstract":"Let $\\pi'_{w}$ denote the failure function of the Knuth-Morris-Pratt algorithm for a word w. In this paper we study the following problem: given an integer array $A'[1 \\mathinner {\\ldotp \\ldotp }n]$ , is there a word w over an arbitrary alphabet Σ such that $A'[i]=\\pi'_{w}[i]$ for all i? Moreover, what is the minimum cardinality of Σ required? We give an elementary and self-contained $\\mathcal{O}(n\\log n)$ time algorithm for this problem, thus improving the previously known solution (Duval et al. in Conference in honor of Donald E. Knuth, 2007), which had no polynomial time bound. Using both deeper combinatorial insight into the structure of π′ and advanced algorithmic tools, we further improve the running time to $\\mathcal{O}(n)$ .","sourceIds":["journals/mst/GawrychowskiJJ14","conf/csr/GawrychowskiJJ10"]},{"url":"https://www.semanticscholar.org/paper/Knuth-s-art-of-recovering-from-errors-Staff/7acfa66ac1d56f81466f4c9167f80dd9b7736a11?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Knuth's art of recovering from errors","authors":[{"name":"CACM Staff","url":"https://www.semanticscholar.org/author/CACM-Staff/11135244"}],"venue":"Commun. ACM","year":2008,"stats":{},"journal":{"name":"Commun. ACM","volume":"51","pages":"9"},"paperAbstract":"september 2008 | vol. 51 | no. 9 | communications of the acm 9 I REALLy ENjOyED Donald E. Knuth reminiscing in Edward Feigenbaum’s interview with him (“The ‘Art’ of Being Donald Knuth,” July 2008). Who else would have moved to Stanford University to slow down? Knuth’s self-effacing modesty notwithstanding, I would like to challenge anyone to examine the literature preceding Knuth’s contribution to algorithms and compiler theory. There was good work, but it was Knuth who set the field on its feet. I’m now looking forward to learning how he “solves the problem of typesetting” (see Aug. 2008). I personally made the mistake of using Microsoft Word for my Ph.D. thesis (completed 1996). More recently, I decided that the topic—efficient object-oriented programming for shared-memory multiprocessors—was of interest again due to the rise of multicore computers and reformatted it as a book. What a nightmare. I promised myself I’d use LaTeX for every Ph.D. I ever write again. Philip machanick, taringa, Australia","sourceIds":["journals/cacm/X08k"]},{"url":"https://www.semanticscholar.org/paper/Review-of-Fascicle-4-Generating-All-Trees-History-Weber-Wulff/c50adc0db7513ee604feb6019d3bae56dcec81d1?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of \"Fascicle 4: Generating All Trees - History of Combinatorial Generation by Donald E. Knuth\", Addison-Wesley, 2006, ISBN 0-321-33570-8","authors":[{"name":"Debora Weber-Wulff","url":"https://www.semanticscholar.org/author/Debora-Weber-Wulff/1872140"}],"venue":"ACM SIGSOFT Software Engineering Notes","year":2006,"stats":{},"journal":{"name":"ACM SIGSOFT Software Engineering Notes","volume":"31","pages":"60"},"paperAbstract":"When Will asked for a review of Knuth, I thought that this would be the long-expected Volume 4 in its entirety. I read volumes 1-3 as a student some 30 years ago, volume 1 while in bed with the flu. It was a wonderful way to recover, getting into all of those algorithms. We’ve had some good stuff since then from Knuth – TeX, Metafont, Stanford GraphBase, John 3:16, but I have been itching to see more from the master, especially since I now myself teach algorithms and data structures at an engineering college. So I learned a new word: fascicle, which means sections of a book, which are published in parts so that they are available before the entire work is finished. This slim volume is 120 pages, and immediately recognizable typographically as a book by Knuth. He gives us some context, explaining the bits that will be coming before this part of volume 4, and then he dives into explaining how to generate all trees. This is related to questions of nested parentheses. He gives some algorithms for randomly (and of course, since this is Knuth, uniformly random) generating trees. A nice idea, but why? Perhaps for testing purposes? I would have liked to see some references to applications of these algorithms here, not just algorithms for the sake of being algorithms. Okay, the Christmas Tree Algorithm is useful for the last lecture before Christmas. He discusses spanning trees, associates Grey codes with trees, and has some connection between trees and lattices – and lost me there. There are many exercises (some are of the research topic variety) and then a very interesting historical note about the 64 hexagrams in the I Ching. He continues with Indian prosody and Greek poetry metrics, permutations in music and in rolling dice, set partitions, and the Catalan poet Roman Llull (a wonderful palindromic last name), amongst others. This is by far the most fascinating part of this fascicle. The last portion of the book is dedicated to answers to the nonresearch-topic exercises, a blessing for those mortals amongst us who do not immediately see how to solve these problems. Trees are very important for all sorts of things we do today, from game playing to computer graphics. But this bit of volume 4 is much too theoretical for those who hope to find a quick reference of important combinatorical and tree algorithms. One hopes that the rest of volume 4 will be more like this, because we will all have to purchase it to keep our collections of the Knuth volumes up to date. Reviewed by Debora Weber-Wulff, FHTW Berlin, ","sourceIds":["journals/sigsoft/Weber-Wulff06"]},{"url":"https://www.semanticscholar.org/paper/Using-bit-recycling-to-reduce-Knuth-s-balanced-cod-Al-Rababa-a-Dub%C3%A9/f01da0770bdc90e3178d7b8b7e9448237cd6ebfe?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Using bit recycling to reduce Knuth's balanced codes redundancy","authors":[{"name":"Ahmad Al-Rababa'a","url":"https://www.semanticscholar.org/author/Ahmad-Al-Rababa-a/1971944"},{"name":"Danny Dubé","url":"https://www.semanticscholar.org/author/Danny-Dub%C3%A9/2415512"},{"name":"Jean-Yves Chouinard","url":"https://www.semanticscholar.org/author/Jean-Yves-Chouinard/1701702"}],"venue":"2013 13th Canadian Workshop on Information Theory","year":2013,"stats":{},"journal":{"name":"2013 13th Canadian Workshop on Information Theory","pages":"6-11"},"paperAbstract":"Donald Knuth published an efficient algorithm for constructing a code with balanced codewords. A balanced codeword is a codeword that contains an equal number of zero's and one's. The redundancy of the codes built using Knuth's algorithm is about twice the lower bound on redundancy. In this paper we propose a new scheme based on the bit recycling compression technique to reduce Knuth's algorithm redundancy. The proposed scheme does not affect the simplicity of Knuth's algorithm and achieves less redundancy. Theoretical results and an analysis of our scheme are presented as well.","sourceIds":["conf/cwit/Al-RababaaDC13"]},{"url":"https://www.semanticscholar.org/paper/Knuth-s-Balanced-Codes-Revisited-Weber-Immink/782d4a72abd060ddd0f8302bbc4d5e23f1031d01?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Knuth's Balanced Codes Revisited","authors":[{"name":"Jos H. Weber","url":"https://www.semanticscholar.org/author/Jos-H-Weber/7410597"},{"name":"Kees A. Schouhamer Immink","url":"https://www.semanticscholar.org/author/Kees-A-Schouhamer-Immink/1741737"}],"venue":"IEEE Transactions on Information Theory","year":2010,"stats":{},"journal":{"name":"IEEE Transactions on Information Theory","volume":"56","pages":"1673-1679"},"paperAbstract":"In 1986, Don Knuth published a very simple algorithm for constructing sets of bipolar codewords with equal numbers of ¿1¿s and ¿-1¿s, called balanced codes. Knuth's algorithm is well suited for use with large codewords. The redundancy of Knuth's balanced codes is a factor of two larger than that of a code comprising the full set of balanced codewords. In this paper, we will present results of our attempts to improve the performance of Knuth's balanced codes.","sourceIds":["journals/tit/WeberI10"]},{"url":"https://www.semanticscholar.org/paper/Review-of-mathematics-for-the-analysis-of-algorith-Miksa/f1c0fa26b9283bd98ae9de40113f7260ac760756?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of mathematics for the analysis of algorithms by Daniel H. Greene and Donald E. Knuth","authors":[{"name":"Mladen Miksa","url":"https://www.semanticscholar.org/author/Mladen-Miksa/25509086"}],"venue":"SIGACT News","year":2011,"stats":{},"journal":{"name":"SIGACT News","volume":"42","pages":"12-14"},"paperAbstract":"When designing an algorithm it is important to know how well it will perform at a given task. In order to answer that question, we define mathematical equations that describe the relation between performance and input. Most of the time we are interested in the explicit form of that relation, but finding such a form can be a difficult task. Mathematics for the Analysis of Algorithms by Daniel H. Greene and Donald E. Knuth presents a diverse set of mathematical paradigms used for solving those equations.","sourceIds":["journals/sigact/Miksa11"]},{"url":"https://www.semanticscholar.org/paper/Knuth-s-balancing-of-codewords-revisited-Weber-Immink/2e22d041dd96a84b78684e4ae42ad0a62488e1bb?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Knuth's balancing of codewords revisited","authors":[{"name":"Jos H. Weber","url":"https://www.semanticscholar.org/author/Jos-H-Weber/7410597"},{"name":"Kees A. Schouhamer Immink","url":"https://www.semanticscholar.org/author/Kees-A-Schouhamer-Immink/1741737"}],"venue":"ISIT","year":2008,"stats":{},"journal":{"pages":"1567-1571"},"paperAbstract":"In 1986, Don Knuth published a very simple algorithm for constructing sets of bipolar codewords with equal numbers of ’1’s and ’-1’s, called balanced codes. Knuth’s algorithm is, since look-up tables are absent, well suited for use with large codewords. The redundancy of Knuth’s balanced codes is a factor of two larger than that of a code comprising the full set of balanced codewords. In our paper we will present results of our attempts to improve the performance of Knuth’s balanced codes.","sourceIds":["conf/isit/WeberI08"]},{"url":"https://www.semanticscholar.org/paper/Knuth-draws-record-crowd-to-UPE-national-conventio-Popyack/338244d91159b8b05572cab6b5bf6d0fcd0fb0fc?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Knuth draws record crowd to UPE national convention","authors":[{"name":"Jeffrey L. Popyack","url":"https://www.semanticscholar.org/author/Jeffrey-L-Popyack/3157530"}],"venue":"Inroads","year":2011,"stats":{},"journal":{"name":"Inroads","volume":"2","pages":"30-31"},"paperAbstract":"ACM International Collegiate Programming Contest UPE has been a proud sponsor of the ACM International Collegiate Programming Contest since the first World Finals in 1977. This year’s competition was scheduled for early March in Sharm elSheikh, Egypt, but as the world spotlight turned on the political tensions in Cairo at the end of January, it became increasingly obvious that the Finals could not be held as scheduled. Kudos goes to ICPC Executive Director, William Poucher, for his quick ability to relocate the contest at the end of May, in Orlando, Florida, USA.","sourceIds":["journals/inroads/Popyack11a"]},{"url":"https://www.semanticscholar.org/paper/Review-of-The-Art-of-Computer-Programming-Volume-4-Rogers/aec4516259b4796b6dc3481ae2562da4e3a2c156?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of \"The Art of Computer Programming, Volume 4, Fascicles 2, 3, and 4 by Donald E. Knuth, \" Pearson Education (Addison-Wesley), 2005","authors":[{"name":"John D. Rogers","url":"https://www.semanticscholar.org/author/John-D-Rogers/1755756"}],"venue":"SIGACT News","year":2008,"stats":{},"journal":{"name":"SIGACT News","volume":"39","pages":"32-35"},"paperAbstract":"DePaul University, where I teach, offers a Master of Science degree in Computer Science. Most of the students entering this program have very little background in CS and we help them fill this in by offering undergraduate CS courses tailored to older (and so more motivated) students. Teaching the course in discrete mathematics is both a pleasure and a challenge. A pleasure because it is a real joy to present some of the gems of our field to people who have never encountered the mathematics we rely on. Pulling out Euclid’s GCD algorithm and Euler’s cycle finding algorithm and discussing the wonderful elegance of each reminds me of why I entered this field. The challenge comes from connecting the material to practice. Many of these students come from the banking, investing, consulting, or trading firms located steps away from our downtown campus and many are working programmers. For most, the MS is a professional degree so connecting Euclid’s algorithm to public key cryptography helps them understand why grasping the fundamentals of number theory or combinatorics or graph theory (and the more difficult algorithms and proofs to come in later courses) is relevant to practice. One encounters that same pleasure in Don Knuth’s latest additions to his collection of volumes titled “The Art of Computer Programming.” At the same time, he also meets the challenge of practical relevance.","sourceIds":["journals/sigact/Rogers08"]},{"url":"https://www.semanticscholar.org/paper/Review-of-the-art-of-computer-programming-volume-4-Rogers/a442a529b6a4d22728a2853f7cc46e4006dca4c6?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of the art of computer programming: volume 4a by Donald E. Knuth","authors":[{"name":"John D. Rogers","url":"https://www.semanticscholar.org/author/John-D-Rogers/1755756"}],"venue":"SIGACT News","year":2013,"stats":{},"journal":{"name":"SIGACT News","volume":"44","pages":"36-39"},"paperAbstract":"Early in my days as a graduate student, I had to jump through a set of hoops known as “qualifying exams.” These were written tests covering various areas of Computer Science and administered on a Saturday in one of the department’s classrooms. On the warm day I took them the classroom happened to face a small quadrangle also bordered by a building with a set of bells. At 9am two dozen keyed-up graduate students began taking the exam. At 9:05 a series of peals rang out across the quad. We all looked up, out the windows, and then at our proctor. Knowing that he was powerless to stop this clangor he looked at us for a moment and then returned to reading his book. Now it’s certainly annoying enough to have bells ringing while one is trying to recall the definition of “Bélády’s anomaly” but that wasn’t the worst part. As the bells rang I realized that each sequence was a subtle variation on the one before. Wasn’t the one just rung identical to the previous one but with a single swap? In fact, hasn’t the same bell figured in the last three swaps? Then the real danger struck me. I needed all of my intellectual energy and focus to pass this exam. With difficulty I ignored the bells and their elusive but definite patterns. Amazingly I did so and forged ahead, passing the exam (which put me in place to jump through the next set of hoops, the “oral exams”, as in “oral surgery” but a lot less fun). I soon discovered that we had been the unwilling audience of a performance known as a change ringing. But it wasn’t until I read Knuth’s latest volume in his series on “The Art of Computer Programming” (TAOCP) that I learned how much more that ringing had to do with the Computer Science I enjoy than Bélády and his anomaly. Change ringing sequences are an example of combinatorial generation: an algorithmic way of listing, one by one and without repetition, each object from a set of combinatorially defined objects. This raises many questions, among them:","sourceIds":["journals/sigact/Rogers13"]},{"url":"https://www.semanticscholar.org/paper/Book-review-Selected-Papers-on-Computer-Science-by-Khuller/98af6be4ad1d14c1479f7a33afca7fff9d190b28?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Book review: Selected Papers on Computer Science by Donald E. Knuth","authors":[{"name":"Samir Khuller","url":"https://www.semanticscholar.org/author/Samir-Khuller/1737147"}],"venue":"SIGACT News","year":1998,"stats":{},"journal":{"name":"SIGACT News","volume":"29","pages":"21-26"},"paperAbstract":"\"Selected papers on computer science\" by Donald E. Knuth [3] is a collection of lectures an d published papers aimed at a wide audience . A detailed narrative, replete with illustrations an d examples, this collection focuses on three principle themes : the centrality of algorithms to compute r science, the importance of combining theory and practice, as well as the historical development o f the field . Addressing the first of these issues, Knuth argues that computer science is essentially abou t algorithms and algorithmic thought . As he puts it, \"Algorithms are the life-blood of compute r science . . .the common denominator that underlies and unifies the different branches\" . Defining algorithms as concepts that exist independent of programs, even though programming languages are used to express algorithms, Knuth states that \"a person well trained in computer science knows ho w to deal with algorithms, how to construct them, manipulate them, understand them, analyze them\" . In fact, in Knuth's view, an attempt to comprehend mathematical concepts as algorithms result s in a far deeper understanding than might ordinarily result . However, even as Knuth underscores the importance of algorithms as a \"general purpose mental tool\" he simultaneously identifies them as a point of difference between computer science and mathematics . Through a series of examples , he demonstrates that while mathematicians are content once they prove that a certain object that satisfies certain properties exists, a Computer Scientist tries to learn how to compute this object . Such a viewpoint, has led to fundamental advances in Computer Science 3 . Simpler proofs, as well as alternative proofs and a better understanding of mathematical structures can be achieved whe n one puts on a \"Computer Science hat\" . The second theme that Knuth focuses on is the importance of combining theory and practice , something that in his opinion can have a significant payoff for the field as a whole . As he puts is \"the world gets better theoretical tools as it gets better practical tools\" . In this context, Knuth specifically points to his experiences in developing METAFONT, and argues that this very practically oriented project generated many interesting new problems and thus had a very profound impact on his research . Some of these problems are discussed in Chapters 6-9 . Some sample problems are : solving the K-centers problem on a line (a minor modification of the Frederickson an d Johnson [2]) algorithm solves this problem), digitizing straight lines, hyphenating words etc . Pervasive throughout the book, are historical snippets and comments about the historical development of computer science and the impact of the Persian scholar Abu `Abd Allah Muhammad ibn Musa al-Khwarizmi, whose textbook on arithmetic had a significant influence for about 50 0 years . Chapters 11-12 take the reader through a grand tour of ancient Babylonian number systems , Algorithms, Von Neumann's first computer program . A chapter that I really enjoyed reading wa s on Knuth's experiences with programming the IBM 650 and its nuances .","sourceIds":["journals/sigact/Khuller98a"]},{"url":"https://www.semanticscholar.org/paper/Review-of-Selected-Papers-in-Discrete-Mathematics-Oliveira/780fe636528f724f531b02b1d8f6f8f8ae1165b9?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of \"Selected Papers in Discrete Mathematics by D. Knuth\", CSLI (Center for the Study of Language and Information Publication) paperback, $72.00","authors":[{"name":"Carlos A. S. Oliveira","url":"https://www.semanticscholar.org/author/Carlos-A-S-Oliveira/2034290"}],"venue":"SIGACT News","year":2004,"stats":{},"journal":{"name":"SIGACT News","volume":"35","pages":"11-14"},"paperAbstract":"The book \"Selected Papers in Discrete Mathematics\" is a compilation of work published (plus some unpublished papers) by Donald E. Knuth, in the area of discrete mathematics. Clearly, the author does not need any introduction, and is well known by his authoritative work in areas such analysis of algorithms and digital typography. However, more than this, Knuth is a great example of good expositor and writer. Thus, even if your interests are not directly related to the more mathematical areas of computer science, it is greatly rewarding to read this book as a way of learning how to write good papers.","sourceIds":["journals/sigact/Oliveira04a"]},{"url":"https://www.semanticscholar.org/paper/Digital-Typography-by-Donald-E-Knuth-CSLI-Publicat-Parsons/6986b7fbd409cea984297d72d0a8914931b4ffd5?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Digital Typography by Donald E. Knuth, CSLI Publications, 685 pp., US $89.95, ISBN 1-57586-010-4 and Pioneers of Modern Typography revised paperback edition by Herbert Spencer, MIT Press, 158 pp., US $29.95, ISBN 0-262-69303-8","authors":[{"name":"Simon Parsons","url":"https://www.semanticscholar.org/author/Simon-Parsons/1678307"}],"venue":"Knowledge Eng. Review","year":2004,"stats":{},"journal":{"name":"Knowledge Eng. Review","volume":"19","pages":"181-183"},"paperAbstract":"In 1977, unhappy with the appearance of the galley proofs of the revised edition of Volume 2 of his The Art of Computer Programming, Donald Knuth began the development of the typesetting program TEX and its close associate, the font generation program METAFONT. At the time he started out, Knuth was beginning a year’s sabbatical, and apparently thought that he could complete the necessary work within that time. He was wrong. The task ended up taking ‘a substantial portion of my life’ (Knuth, 1999a) and put back work on the complete The Art of Computer Programming by around 10 years.1 Much of the story of those years is told in Digital Typography, which collects many of Knuth’s previously published essays on aspects of TEX and METAFONT, as well as a few previously unpublished fragments, including the draft report that Knuth wrote on the night of the 12–13 May 1977, laying out his initial ideas for the development of TEX. These are fascinating essays, even if one does not have a deep interest in typography per se. One reason for this is that all of us now have to do a good deal of typesetting, in a way that would have been unheard of only a few years ago. Throughout my academic career I have taken it for granted that I would typeset my own work, but then I was still an undergraduate when TEX became widely available. By the time I became a graduate student, it was already common practice to write directly on a computer rather than writing by hand and typing up a finished draft, though I had much older colleagues in that period who still gave handwritten manuscripts to their secretary for typing. This change is partly because we all now have easy access to computers, of course, but I believe in part it is also because:","sourceIds":["journals/ker/Parsons04b"]},{"url":"https://www.semanticscholar.org/paper/Saddle-Points-in-Random-Matrices-Analysis-of-Knuth-Hofri-Jacquet/1f898a84429bd8c934c4d31bfd8ece6c7e1fe11d?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Saddle Points in Random Matrices: Analysis of Knuth Search Algorithms","authors":[{"name":"Micha Hofri","url":"https://www.semanticscholar.org/author/Micha-Hofri/1725884"},{"name":"Philippe Jacquet","url":"https://www.semanticscholar.org/author/Philippe-Jacquet/1698980"}],"venue":"Algorithmica","year":1998,"stats":{},"journal":{"name":"Algorithmica","volume":"22","pages":"516-528"},"paperAbstract":"We present an analysis of algorithms for finding saddle points in a random matrix, presented by Donald E. Knuth as Exercise 1.3.2-12 in The Art of Computer Programming . We estimate the average computing costs of three saddle point search algorithms. Amusingly, the asymptotic results in this analysis about matrix saddle points uses the same approach that leads to the celebrated saddle point method in complex analysis.","sourceIds":["journals/algorithmica/HofriJ98"]},{"url":"https://www.semanticscholar.org/paper/A-Proof-of-a-Conjecture-of-Knuth-Paule/23fc966fc1aa4602650e0aea6f58a88c6c049947?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"A Proof of a Conjecture of Knuth","authors":[{"name":"Peter Paule","url":"https://www.semanticscholar.org/author/Peter-Paule/1756682"}],"venue":"Experimental Mathematics","year":1996,"stats":{"influentialCitations":1},"journal":{"name":"Experimental Mathematics","volume":"5","pages":"83-89"},"paperAbstract":"From numerical experiments, D. E. Knuth conjectured that 0 < Dn+4 < Dn for a combinatorial sequence (Dn) defined as the difference Dn = Rn − Ln of two definite hypergeometric sums. The conjecture implies an identity of type Ln = bRnc, involving the floor function. We prove Knuth’s conjecture by applying Zeilberger’s algorithm as well as classical hypergeometric machinery.","sourceIds":["journals/em/Paule96"]},{"url":"https://www.semanticscholar.org/paper/Donald-A-Knuth-Scholar-with-a-Passion-for-the-Part-Frenkel/4b5a87ff972649cfcb2d0825d4f41904814922bd?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Donald A. Knuth - Scholar with a Passion for the Particular","authors":[{"name":"Karen A. Frenkel","url":"https://www.semanticscholar.org/author/Karen-A-Frenkel/1706353"}],"venue":"Commun. ACM","year":1987,"stats":{},"journal":{"name":"Commun. ACM","volume":"30","pages":"816-819"},"paperAbstract":"\"Age 30 is kind of appropriate because I got the first copy of volume 1 from the publisher nine days after my 30th birthday. So, a large part of the work had been done when I was 30 years old. They already were working on typesetting the second volume.\"\nCommenting on his books' influence, Knuth says, \"It's been phenomenal from my point of view. In 1976 a study was done of how many people writing papers on computer science made a reference to my book somewhere in their articles, and it was found that about 30 percent of the papers in Communications, Journal of the ACM, and SIAM Journal on Computing cited the book. So it has an impact in that way.\" What about sales? Knuth notes that publishers may joke about professors whose books never sell, but they don't apply here. \"I know that people buy the book. I don't know how many read it. But the sales have been incredible. I think something between 1000 and 2000 copies [have been sold] per month for 20 years.\"","sourceIds":["journals/cacm/Frenkel87b"]},{"url":"https://www.semanticscholar.org/paper/Representing-Graphs-by-Knuth-Trees-Pfaltz/6e45df49f5d0ff6bf29ce693799707da24ae7762?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Representing Graphs by Knuth Trees","authors":[{"name":"John L. Pfaltz","url":"https://www.semanticscholar.org/author/John-L-Pfaltz/2585707"}],"venue":"J. ACM","year":1975,"stats":{},"journal":{"name":"J. ACM","volume":"22","pages":"361-366"},"paperAbstract":"ASSrRACT. By means of the :Knuth transform, arbitrary rooted trees may be represented compactly as binary trees. In this paper it is shown that the domain of this transform may be extended to a much wider class of graphs, while still maintaining its fundamental properties. Graphs, G, belonging to this extended domain are characterized first in terms of properties of an induced graph, G*, and then in terms of local properties of G itself. A classic kind of \"forbidden\" subgraph theorem characterizes nonrepresentable graphs. Finally, it is shown that any directed graph can be modified to make it representable under the transform.","sourceIds":["journals/jacm/Pfaltz75"]},{"url":"https://www.semanticscholar.org/paper/Review-of-TEX-and-METAFONT-New-Directions-in-Types-Price/7f62b7f3bcfb9fe86ce8e7f3a0ac9b7497b1f909?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Review of \"TEX and METAFONT, New Directions in Typesetting by Donald Knuth\", Digital Press and the American Mathematical Society","authors":[{"name":"Keith Price","url":"https://www.semanticscholar.org/author/Keith-Price/2888476"}],"venue":"SIGART Newsletter","year":1980,"stats":{},"journal":{"name":"SIGART Newsletter","volume":"71","pages":"28-29"},"paperAbstract":"TEX and METAFONT, New Directions in Typesetting consists of three parts each of which is self-contained. First is \"Mathematical Typography,\" a Gibbs Lecture that Dr. Knuth presented to the annual meeting of the American Mathematical Society. This gives an overview of both TEX and METAFONT and puts them in perspective. Part 2 is a oomplete description of the TEX typesetting system. The last part is a similar description of METAFONT.","sourceIds":["journals/sigart/Price80d"]},{"url":"https://www.semanticscholar.org/paper/Biographies-A-Conversation-with-Don-Knuth-Albers-Steen/906120ba9052ac1f64e465fd47ac1cd91eb09bc2?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Biographies [A Conversation with Don Knuth]","authors":[{"name":"Donald J. Albers","url":"https://www.semanticscholar.org/author/Donald-J-Albers/3051938"},{"name":"Lynn A. Steen","url":"https://www.semanticscholar.org/author/Lynn-A-Steen/2828354"}],"venue":"Annals of the History of Computing","year":1982,"stats":{},"journal":{"name":"Annals of the History of Computing","volume":"4","pages":"257-273"},"paperAbstract":"The Annals is reprinting this interview, more a monologue than a conversation, because Donald E. Knuth is one of the giants of computing. We would like to understand how he developed, what he thought, and how he came by this idea or that as he created his many contributions, not the least of which is the brilliant clarity and comprehensiveness with which he has expresse d and exp lained them. Reprinting is also justified because of the very small intersection between the readership of the Annals and the Two-Year College Mathematics Journal, the original publisher.","sourceIds":["journals/annals/AlbersS82"]},{"url":"https://www.semanticscholar.org/paper/Large-numbers-Knuth-s-arrow-notation-and-Ramsey-th-Pr%C3%B6mel/329ec31ae892658569a6eeaad1c95dda78f93fea?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Large numbers, Knuth's arrow notation, and Ramsey theory","authors":[{"name":"Hans Jürgen Prömel","url":"https://www.semanticscholar.org/author/Hans-J%C3%BCrgen-Pr%C3%B6mel/2396463"}],"venue":"Synthese","year":2002,"stats":{},"journal":{"name":"Synthese","volume":"133","pages":"87-105"},"paperAbstract":"In the childrens' book The Phantom Tollboothh by Norton Juster one can nd the following passage: Yes, please,, said Milo. Can you show me the biggest number there is?? I'd be delighted,, the Mathemagician] replied, opening one of the closet doors. We keep it right here. It took four miners just to dig it out.. Inside was the biggest 3 Milo had ever seen. It was fully twice as high as the Mathemagician. This is what children might consider to be a large number. The scope of this paper is to shed some light on numbers which adults in former times and now regard as large. Of course, the selection is arbitrary. 1 Large numbers a historical glimpse Numbers have always fascinated people. We start with a short look at the number system of the Romans and the Greeks which will lead us to Archimedes and to the largest number which appears in the literature of early occidental history. The German word Zahll (number) goes back to the Old High-German word zalaa, which in turn belongs (as also the English talee and the Dutch taall do)","sourceIds":["journals/synthese/Promel02"]},{"url":"https://www.semanticscholar.org/paper/Book-Review-Selected-Papers-on-Analysis-of-Algorit-Overill/95883be072dbb28866dcaa3b8d4219d908cc3b0c?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Book Review: \"Selected Papers on Analysis of Algorithms\" by Donald E. Knuth","authors":[{"name":"Richard E. Overill","url":"https://www.semanticscholar.org/author/Richard-E-Overill/2506183"}],"venue":"J. Log. Comput.","year":2001,"stats":{},"journal":{"name":"J. Log. Comput.","volume":"11","pages":"355"},"sourceIds":["journals/logcom/Overill01"]},{"url":"https://www.semanticscholar.org/paper/A-review-of-Selected-Papers-on-Analysis-of-Algorit-McNicholl/dbf6df9d1cfa6aa91fb344f51688cc86600512e6?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"A review of Selected Papers on Analysis of Algorithms: by Donald E. Knuth","authors":[{"name":"Timothy H. McNicholl","url":"https://www.semanticscholar.org/author/Timothy-H-McNicholl/1789626"}],"venue":"SIGACT News","year":2001,"stats":{},"journal":{"name":"SIGACT News","volume":"32","pages":"5-8"},"paperAbstract":"lurking in the algorithms or code. The book takes a slightly abstract and general approach, defining abstract data types and then discussing particular specializations of them. While this approach is elegant, it may be problematic as an introductory approach for less theoretically-minded students. In the same vein, the book might benefit from using a more developmental approach to initial algorithm explanation (e.g. explaining a problem and then building up the solution in \"stream of consciousness\" step-bystep mode). (Of course, neither of these points necessarily apply to the reader who is mathematical ly sophisticated or who is reviewing previously-learned material, although for such readers other books such as Cormen et al's Introduction to Algorithms would be more suitable.) Data ,qtructure8 has a lot of good points, not least of which is a successful presentation of traditional data structures in an object-oriented framework; however, there are still some blemishes. If the authors put effort into incorporating feedback and increasing ease of understanding, the third edition could be a classic. Nevertheless, this second edition is quite usable as a classroom text or even as a reference for basic topics.","sourceIds":["journals/sigact/McNicholl01"]},{"url":"https://www.semanticscholar.org/paper/Mathematical-writing-by-Donald-E-Knuth-Tracy-Larra-Parsons/ed7cbe1b30eb520c9456ba63b3a668395ff93b82?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Mathematical writing by Donald E. Knuth, Tracy Larrabee and Paul M. Roberts, The Mathematical Association of America, 1989, 116pp, ISBN 0-88385-063-X","authors":[{"name":"Simon Parsons","url":"https://www.semanticscholar.org/author/Simon-Parsons/1678307"}],"venue":"Knowledge Eng. Review","year":1997,"stats":{},"journal":{"name":"Knowledge Eng. Review","volume":"12","pages":"331-334"},"sourceIds":["journals/ker/Parsons97a"]},{"url":"https://www.semanticscholar.org/paper/Book-Review-Stable-Marriage-and-its-Relation-to-Ot-McNicholl/3b3692cbf148e135a9cdf3d5a95ac7c4f487349b?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Book Review: Stable Marriage and its Relation to Other Combinatorial Problems: An Introduction to Algorithm Analysis by Donald E. Knuth (American Mathematical Society 1996)","authors":[{"name":"Timothy H. McNicholl","url":"https://www.semanticscholar.org/author/Timothy-H-McNicholl/1789626"}],"venue":"SIGACT News","year":1999,"stats":{},"journal":{"name":"SIGACT News","volume":"30","pages":"2-4"},"paperAbstract":"1. Stable Marriage and its Relation to Other Combinatorial Problems : An Introduction to Algorithm Analysis by Donald Knuth . Reviewed by Tim McNichol. This book uses the stable marriage problem as motivation to look at some mathematics of inter est . It would be useful for undergrads ; however, for a serious study of matching there ar e more advanced and more up-to-date books available . 2. The Limits of Mathematics by Gregory J . Chaitin . Reviewed by Vladimir Tasic . This book is on algorithmic information theory and randomness as they relate to Berr y 's Paradox (\"the shortest number that requires less than 1000 characters to describe it\" has just bee n described by that phrase in quotes, yet that phrase was less than 1000 characters . ) 3. Privacy on the Line by Whitfield Diffie and Susan Landau . Reviewed by Joseph Maklevitch . This book is about the balance between the citizen's need for privacy and the government's need to intrude to prevent or solve crimes . These issues are relevant now because o f crytography and computers . The authors are respected theorists who have worked in cryptog raphy, hence their comments are worthy considering . This book has caused some controvers y in the math community— see the June-July 1998 issue of Notices of the AMS, also available at http://www.ams .org/notices . Or, better yet, read the book ! 4. A Theory of Objects by Authors : Martin Abadi and Luca Cardelli . Reviewed by Brian Postow . This book is about formalizing the semantics of object-oriented languages . To do this, a new calculus is introduced .","sourceIds":["journals/sigact/McNicholl99"]},{"url":"https://www.semanticscholar.org/paper/On-obtaining-Knuth-Morris-and-Pratt-s-string-match-Ager-Danvy/56726a9184034eeb0f86845d446bde10f1a04ce1?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"On obtaining Knuth, Morris, and Pratt's string matcher by partial evaluation","authors":[{"name":"Mads Sig Ager","url":"https://www.semanticscholar.org/author/Mads-Sig-Ager/1934628"},{"name":"Olivier Danvy","url":"https://www.semanticscholar.org/author/Olivier-Danvy/1705883"},{"name":"Henning Korsholm Rohde","url":"https://www.semanticscholar.org/author/Henning-Korsholm-Rohde/2469276"}],"venue":"ASIA-PEPM","year":2002,"stats":{"influentialCitations":1},"journal":{"pages":"32-46"},"paperAbstract":"We present the first formal proof that partial evaluation of a quadratic string matcher can yield the precise behaviour of Knuth, Morris, and Pratt's linear string matcher.Obtaining a KMP-like string matcher is a canonical example of partial evaluation: starting from the naive, quadratic program checking whether a pattern occurs in a text, one ensures that backtracking can be performed at partial-evaluation time (a binding-time shift that yields a staged string matcher); specializing the resulting staged program yields residual programs that do not back up on the text, a la KMP. We are not aware, however, of any formal proof that partial evaluation of a staged string matcher precisely yields the KMP string matcher, or in fact any other specific string matcher.In this article, we present a staged string matcher and we formally prove that it performs the same sequence of comparisons between pattern and text as the KMP string matcher. To this end, we operationally specify each of the programming languages in which the matchers are written, and we formalize each sequence of comparisons with a trace semantics. We also state the (mild) conditions under which specializing the staged string matcher with respect to a pattern string provably yields a specialized string matcher whose size is proportional to the length of this pattern string and whose time complexity is proportional to the length of the text string. Finally, we show how tabulating one of the functions in this staged string matcher gives rise to the 'next' table of the original KMP algorithm.The method scales for obtaining other linear string matchers, be they known or new.","sourceIds":["conf/pepm/AgerDR02"]},{"url":"https://www.semanticscholar.org/paper/The-TeXbook-Knuth/4a57bd8f0b6fde980e9f63d2574eb41dbb659d4c?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The TeXbook","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"","year":1986,"stats":{"influentialCitations":38,"estimatedTotalCitations":{"min":223.90717064876333,"value":265.9071706487633,"max":316.9071706487633,"confidence":0.9}},"sourceIds":["books/aw/Knuth86"]},{"url":"https://www.semanticscholar.org/paper/The-IBM-650-An-Appreciation-from-the-Field-Knuth/f9f11acf905858f53d8dd3ce7a1d61ced0ced127?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"The IBM 650: An Appreciation from the Field","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Annals of the History of Computing","year":1986,"stats":{},"journal":{"name":"Annals of the History of Computing","volume":"8","pages":"50-55"},"paperAbstract":"How does one summarize the personal reminiscences of another of the giants in the computer field? Don Knuth is also an artist, of course, as witness his comments on Poley’s code and his “Art of Computer Programming. ” Knuth was a tremendous help to me in preparing this special issue. He wrote to other participants and encouraged them and me. Here is a letter he wrote me as this project was starting: Dear Cuthbert, When you asked if I might be interested in writing something about the IBM 650, I thought I might be able to come up with about two pages worth of stuff. But when I *began to reminisce, it became clear that I should write about ten times as much as I had originally thought. Here is the result; I hope you like it. Tears ran from my eyes as I (sob) wrote the conclusion!","sourceIds":["journals/annals/Knuth86"]},{"url":"https://www.semanticscholar.org/paper/Semantics-of-context-free-languages-Correction-Knuth/5f3ec847e73cbc67eda73a35024eb644bef4a01c?utm_campaign=DBLP+Prototype&utm_source=DBLP&utm_medium=Partner+API","title":"Semantics of context-free languages: Correction","authors":[{"name":"Donald E. Knuth","url":"https://www.semanticscholar.org/author/Donald-E-Knuth/1717349"}],"venue":"Mathematical systems theory","year":1971,"stats":{"influentialCitations":8,"estimatedTotalCitations":{"min":96.64727413716471,"value":124.64727413716471,"max":162.64727413716471,"confidence":0.9}},"journal":{"name":"Mathematical systems theory","volume":"5","pages":"95-96"},"paperAbstract":"Page 137, delete \"when ~\"j is of the type q(j)\" at the end of the proof of the theorem. Page 135, line 14, change T to 3--. In the last formula of (2•4), replace \"{(l(Xpo), Xpo)lXpo ~ S}\" by \"((l(Xpj), Xpj) ll < j 0 . (0.5) This recurrence [9] corresponds to a procedure that constructs all perfect matchings by starting with {x1, x2}∪· · ·∪{x2n−1, x2n} and making cyclic permutations of the indices in positions {2, . . . , 2n}, {4, . . . , 2n}, . . . ; each of these permutations is even. It will be convenient in the sequel to extend the sign function s to s(α, β) for arbitrary words α, β ∈ X∗. We define s(α, β) = 0 if either α or β has a repeated letter, or if β contains a letter not in α. Otherwise s(α, β) is the sign of the permutation that takes α into the word β (α\\β) , where α\\β is the word that remains when the elements of β are removed from α. Thus, for example, s(αβγ, β) = {0 , if αβγ contains a repeated letter; (−1)|α| |β| , otherwise. (0.6) We also have s(α, βγ) = s(α, β)s(α\\β, γ) , (0.7) since both sides vanish unless the letters of βγ are distinct and contained in the distinct letters of α, and in the latter case s(α, βγ) is the parity of the number of transpositions needed to bring β to the left of α and γ to the left of the remaining word α\\β. If α has repeated letters, the Pfaffian f [α] is zero, because f [α] = −f [α] when we transpose two identical letters. Therefore our convention that s(α, β) = 0 when α or β has repeated letters does not invalidate definition (0.1), which used a different convention for s(x1 . . . x2n, y1 . . . y2n). One consequence of the new convention is the identity f [α] = ∑ x1<···