Knuthweb.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Programming Pearls: a Literate Program
by jot1 Be~~tley programming with Special Guest Oysters Don Knuth and Doug McIlroy pearls A LITERATE PROGRAM Last month‘s column introduced Don Knuth’s style of frequency; or there might not even be as many as k “Literate Programming” and his WEB system for building words. Let’s be more precise: The most common programs that are works of literature. This column pre- words are to be printed in order of decreasing fre- sents a literate program by Knuth (its origins are sketched quency, with words of equal frequency listed in al- in last month‘s column) and, as befits literature, a review. phabetic order. Printing should stop after k words So without further ado, here is Knuth’s program, have been output, if more than k words are present. retypeset in Communications style. -Jon Bentley 2. The input file is assumed to contain the given Common Words Section text. If it begins with a positive decimal number Introduction.. , . , , . , . , . , , . 1 (preceded by optional blanks), that number will be Strategic considerations . , a the value of k; otherwise we shall assume that Basic input routines . , , . 9 k = 100. Answers will be sent to the output file. Dictionary lookup . , . , . , .17 define default-k = 100 (use this value if k isn’t The frequency counts . .32 otherwise specified) Sortingatrie . ...36 Theendgame................................41 3. Besides solving the given problem, this program is Index . ...42 supposed to be an example of the WEB system, for people who know some Pascal but who have never 1. Introduction. The purpose of this program is to seen WEB before. -
Teaching Foundations of Computation and Deduction Through Literate Functional Programming and Type Theory Formalization
Teaching Foundations of Computation and Deduction Through Literate Functional Programming and Type Theory Formalization Gérard Huet Inria Paris Laboratory, France Abstract We describe experiments in teaching fundamental informatics notions around mathematical struc- tures for formal concepts, and effective algorithms to manipulate them. The major themes of lambda-calculus and type theory served as guides for the effective implementation of functional programming languages and higher-order proof assistants, appropriate for reflecting the theor- etical material into effective tools to represent constructively the concepts and formally certify the proofs of their properties. Progressively, a literate programming and proving style replaced informal mathematics in the presentation of the material as executable course notes. The talk will evoke the various stages of (in)completion of the corresponding set of notes along the years (see [1, 2, 14, 5, 6, 10, 12, 16, 7, 15, 17, 9, 3, 13, 11, 4, 8]), and tell how their elaboration proved to be essential to the discovery of fundamental results. 1998 ACM Subject Classification F.3.1 Specifying and Verifying Programs, F.4.1 Mathematical Logic and G.4 Mathematical Software Keywords and phrases Foundations, Computation, Deduction, Programming, Proofs Digital Object Identifier 10.4230/LIPIcs.FSCD.2016.3 Category Invited Talk References 1 Gérard Huet. Initiation à la logique mathématique. Notes de cours du DEA d’Informatique, Université Paris-Sud, 1977. 2 Gérard Huet. Démonstration automatique en logique de premier ordre et programmation en clauses de horn. Notes de cours du DEA d’Informatique, Université Paris-Sud, 1978. 3 Gérard Huet. Confluent reductions: Abstract properties and applications to term rewriting systems. -
Typeset MMIX Programs with TEX Udo Wermuth Abstract a TEX Macro
TUGboat, Volume 35 (2014), No. 3 297 Typeset MMIX programs with TEX Example: In section 9 the lines \See also sec- tion 10." and \This code is used in section 24." are given. Udo Wermuth No such line appears in section 10 as it only ex- tends the replacement code of section 9. (Note that Abstract section 10 has in its headline the number 9.) In section 24 the reference to section 9 stands for all of ATEX macro package is presented as a literate pro- the eight code lines stated in sections 9 and 10. gram. It can be included in programs written in the If a section is not used in any other section then languages MMIX or MMIXAL without affecting the it is a root and during the extraction of the code a assembler. Such an instrumented file can be pro- file is created that has the name of the root. This file cessed by TEX to get nicely formatted output. Only collects all the code in the sequence of the referenced a new first line and a new last line must be entered. sections from the code part. The collection process And for each end-of-line comment a flag is set to for all root sections is called tangle. A second pro- indicate that the comment is written in TEX. cess is called weave. It outputs the documentation and the code parts as a TEX document. How to read the following program Example: The following program has only one The text that starts in the next chapter is a literate root that is defined in section 4 with the headline program [2, 1] written in a style similar to noweb [7]. -
Miktex Manual Revision 2.0 (Miktex 2.0) December 2000
MiKTEX Manual Revision 2.0 (MiKTEX 2.0) December 2000 Christian Schenk <[email protected]> Copyright c 2000 Christian Schenk Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. Chapter 1: What is MiKTEX? 1 1 What is MiKTEX? 1.1 MiKTEX Features MiKTEX is a TEX distribution for Windows (95/98/NT/2000). Its main features include: • Native Windows implementation with support for long file names. • On-the-fly generation of missing fonts. • TDS (TEX directory structure) compliant. • Open Source. • Advanced TEX compiler features: -TEX can insert source file information (aka source specials) into the DVI file. This feature improves Editor/Previewer interaction. -TEX is able to read compressed (gzipped) input files. - The input encoding can be changed via TCX tables. • Previewer features: - Supports graphics (PostScript, BMP, WMF, TPIC, . .) - Supports colored text (through color specials) - Supports PostScript fonts - Supports TrueType fonts - Understands HyperTEX(html:) specials - Understands source (src:) specials - Customizable magnifying glasses • MiKTEX is network friendly: - integrates into a heterogeneous TEX environment - supports UNC file names - supports multiple TEXMF directory trees - uses a file name database for efficient file access - Setup Wizard can be run unattended The MiKTEX distribution consists of the following components: • TEX: The traditional TEX compiler. -
Programming Technologies for the Development of Web-Based Platform for Digital Psychological Tools
(IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 9, No. 8, 2018 Programming Technologies for the Development of Web-Based Platform for Digital Psychological Tools Evgeny Nikulchev1, Dmitry Ilin2 Pavel Kolyasnikov3 Ilya Zakharov5, Sergey Malykh6 4 MIREA – Russian Technological Vladimir Belov Psychological Institute of Russian University & Russian Academy Russian Academy Science Academy of Education Science, Moscow, Russia Moscow, Russia Moscow, Russia Abstract—The choice of the tools and programming In addition, large accumulated data sets can become the technologies for information systems creation is relevant. For basis for machine learning mechanisms and other approaches every projected system, it is necessary to define a number of using artificial intelligence. Accumulation of data from criteria for development environment, used libraries and population studies into a single system can allow a technologies. The paper describes the choice of technological breakthrough in the development of systems for automated solutions using the example of the developed web-based platform intellectual analysis of behavior data. of the Russian Academy of Education. This platform is used to provide information support for the activities of psychologists in The issue of selecting methodological tools for online and their research (including population and longitudinal offline research includes several items. researches). There are following system features: large scale and significant amount of developing time that needs implementation First, any selection presupposes the existence of generally and ensuring the guaranteed computing reliability of a wide well-defined criteria, on the basis of which a decision can be range of digital tools used in psychological research; ensuring made to include or not to include techniques in the final functioning in different environments when conducting mass toolkit. -
The LATEX Web Companion
The LATEX Web Companion Integrating TEX, HTML, and XML Michel Goossens CERN Geneva, Switzerland Sebastian Rahtz Elsevier Science Ltd., Oxford, United Kingdom with Eitan M. Gurari, Ross Moore, and Robert S. Sutor Ä yv ADDISON—WESLEY Boston • San Francisco • New York • Toronto • Montreal London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Contents List of Figures xi List of Tables xv Preface xvii 1 The Web, its documents, and D-ItX 1 1.1 The Web, a window an die Internet 3 1.1.1 The Hypertext Transport Protocol 4 1.1.2 Universal Resource Locators and Identifiers 5 1.1.3 The Hypertext Markup Language 6 1.2 BTEX in die Web environment 11 1.2.1 Overview of document formats and strategies 12 1.2.2 Staying with DVI 14 1.2.3 PDF for typographic quality 15 1.2.4 Down-translation to HTML 16 1.2.5 Java and browser plug-ins 20 1.2.6 Other L4TEX-related approaches to the Web 21 1.3 Is there an optimal approach? 23 1.4 Conclusion 24 2 Portable Document Format 25 2.1 What is PDF? 26 2.2 Generating PDF from TEX 27 2.2.1 Creating and manipulating PDF 28 vi Contents 2.2.2 Setting up fonts 29 2.2.3 Adding value to your PDF 33 2.3 Rich PDF with I4TEX: The hyperref package 35 2.3.1 Implicit behavior of hyperref 36 2.3.2 Configuring hyperref 38 2.3.3 Additional user macros for hyperlinks 45 2.3.4 Acrobat-specific commands 47 2.3.5 Special support for other packages 49 2.3.6 Creating PDF and HTML forms 50 2.3.7 Designing PDF documents for the screen 59 2.3.8 Catalog of package options 62 2.4 Generating -
Mmixware a RISC Computer for the Third Millennium Reihe: Lecture Notes in Computer Science
springer.com Donald E. Knuth MMIXware A RISC Computer for the Third Millennium Reihe: Lecture Notes in Computer Science MMIX is a RISC computer designed by Don Knuth to illustrate machine-level aspects of programming. In the author's book series "The Art of Computer Programming", MMIX replaces the 1960s-style machine MIX. A particular goal in the design of MMIX was to keep its machine language simple, elegant, and easy to learn. At the same time, all of the complexities needed to achieve high performance in practice are taken into account. This book constitutes a collection of programs written in CWEB that make MMIX a virtual reality. Among other utilities, an assembler converting MMIX symbolic files to MMIX objects and two simulators executing the programs in given object files are provided. The latest version of all programs can be downloaded from MMIX's home page. The book provides a complete documentation of the MMIX computer and its assembly language. It also presents mini-indexes, which make the programs much easier to understand. A corrected reprint of the book has been published in 1999, X, 550 p. August 2014, replacing the version of 1999. Gedrucktes Buch Softcover 79,99 € | £69.99 | $99.99 [1]85,59 € (D) | 87,99 € (A) | CHF 94,50 eBook 67,40 € | £55.99 | $79.99 [2]67,40 € (D) | 67,40 € (A) | CHF 75,50 Erhältlich bei Ihrer Bibliothek oder springer.com/shop MyCopy [3] Printed eBook for just € | $ 24.99 springer.com/mycopy Erhältlich bei Ihrem Buchhändler oder – Springer Nature Customer Service Center GmbH, Haberstrasse 7, 69126 Heidelberg, Germany / Call: + 49 (0) 6221-345-4301 / Fax: +49 (0)6221-345-4229 / Email: [email protected] / Web: springer.com [1] € (D) sind gebundene Ladenpreise in Deutschland und enthalten 7% MwSt; € (A) sind gebundene Ladenpreise in Österreich und enthalten 10% MwSt. -
Statistical Software
Statistical Software A. Grant Schissler1;2;∗ Hung Nguyen1;3 Tin Nguyen1;3 Juli Petereit1;4 Vincent Gardeux5 Keywords: statistical software, open source, Big Data, visualization, parallel computing, machine learning, Bayesian modeling Abstract Abstract: This article discusses selected statistical software, aiming to help readers find the right tool for their needs. We categorize software into three classes: Statisti- cal Packages, Analysis Packages with Statistical Libraries, and General Programming Languages with Statistical Libraries. Statistical and analysis packages often provide interactive, easy-to-use workflows while general programming languages are built for speed and optimization. We emphasize each software's defining characteristics and discuss trends in popularity. The concluding sections muse on the future of statistical software including the impact of Big Data and the advantages of open-source languages. This article discusses selected statistical software, aiming to help readers find the right tool for their needs (not provide an exhaustive list). Also, we acknowledge our experiences bias the discussion towards software employed in scholarly work. Throughout, we emphasize the software's capacity to analyze large, complex data sets (\Big Data"). The concluding sections muse on the future of statistical software. To aid in the discussion, we classify software into three groups: (1) Statistical Packages, (2) Analysis Packages with Statistical Libraries, and (3) General Programming Languages with Statistical Libraries. This structure -
Exploratory Data Science Using a Literate Programming Tool Mary Beth Kery1 Marissa Radensky2 Mahima Arya1 Bonnie E
The Story in the Notebook: Exploratory Data Science using a Literate Programming Tool Mary Beth Kery1 Marissa Radensky2 Mahima Arya1 Bonnie E. John3 Brad A. Myers1 1Human-Computer Interaction Institute 2Amherst College 3Bloomberg L. P. Carnegie Mellon University Amherst, MA New York City, NY Pittsburgh, PA [email protected] [email protected] mkery, mahimaa, bam @cs.cmu.edu ABSTRACT engineers, many of whom never receive formal training in Literate programming tools are used by millions of software engineering [30]. programmers today, and are intended to facilitate presenting data analyses in the form of a narrative. We interviewed 21 As even more technical novices engage with code and data data scientists to study coding behaviors in a literate manipulations, it is key to have end-user programming programming environment and how data scientists kept track tools that address barriers to doing effective data science. For of variants they explored. For participants who tried to keep instance, programming with data often requires heavy a detailed history of their experimentation, both informal and exploration with different ways to manipulate the data formal versioning attempts led to problems, such as reduced [14,23]. Currently even experts struggle to keep track of the notebook readability. During iteration, participants actively experimentation they do, leading to lost work, confusion curated their notebooks into narratives, although primarily over how a result was achieved, and difficulties effectively through cell structure rather than markdown explanations. ideating [11]. Literate programming has recently arisen as a Next, we surveyed 45 data scientists and asked them to promising direction to address some of these problems [17]. -
Implementation of a MIX Emulator: a Case Study of the Scala Programming Language Facilities
ISSN 2255-8691 (online) Applied Computer Systems ISSN 2255-8683 (print) December 2017, vol. 22, pp. 47–53 doi: 10.1515/acss-2017-0017 https://www.degruyter.com/view/j/acss Implementation of a MIX Emulator: A Case Study of the Scala Programming Language Facilities Ruslan Batdalov1, Oksana Ņikiforova2 1, 2 Riga Technical University, Latvia Abstract – Implementation of an emulator of MIX, a mythical synchronous manner, possible errors in a program may remain computer invented by Donald Knuth, is used as a case study of unnoticed. In the authors’ opinion, these checks are useful in the features of the Scala programming language. The developed mastering how to write correct programs because similar emulator provides rich opportunities for program debugging, such as tracking intermediate steps of program execution, an errors often occur in a modern program despite all changes in opportunity to run a program in the binary or the decimal mode hardware and software technologies. Therefore, it would be of MIX, verification of correct synchronisation of input/output helpful if an emulator supported running programs in different operations. Such Scala features as cross-compilation, family modes and allowed checking that the execution result was the polymorphism and support for immutable data structures have same in all cases. proved to be useful for implementation of the emulator. The The programming language chosen by the authors for the authors of the paper also propose some improvements to these features: flexible definition of family-polymorphic types, implementation of an emulator supporting these features is integration of family polymorphism with generics, establishing Scala. This choice is arbitrary to some extent and rather full equivalence between mutating operations on mutable data dictated by the authors’ interest in the features of this types and copy-and-modify operations on immutable data types. -
Trisycl Open Source C++17 & Openmp-Based Opencl SYCL Prototype
triSYCL Open Source C++17 & OpenMP-based OpenCL SYCL prototype Ronan Keryell Khronos OpenCL SYCL committee 05/12/2015 — IWOCL 2015 SYCL Tutorial • I OpenCL SYCL committee work... • Weekly telephone meeting • Define new ways for modern heterogeneous computing with C++ I Single source host + kernel I Replace specific syntax by pure C++ abstractions • Write SYCL specifications • Write SYCL conformance test • Communication & evangelism triSYCL — Open Source C++17 & OpenMP-based OpenCL SYCL prototype IWOCL 2015 2 / 23 • I SYCL relies on advanced C++ • Latest C++11, C++14... • Metaprogramming • Implicit type conversion • ... Difficult to know what is feasible or even correct... ;• Need a prototype to experiment with the concepts • Double-check the specification • Test the examples Same issue with C++ standard and GCC or Clang/LLVM triSYCL — Open Source C++17 & OpenMP-based OpenCL SYCL prototype IWOCL 2015 3 / 23 • I Solving the meta-problem • SYCL specification I Includes header files descriptions I Beautified .hpp I Tables describing the semantics of classes and methods • Generate Doxygen-like web pages Generate parts of specification and documentation from a reference implementation ; triSYCL — Open Source C++17 & OpenMP-based OpenCL SYCL prototype IWOCL 2015 4 / 23 • I triSYCL (I) • Started in April 2014 as a side project • Open Source for community purpose & dissemination • Pure C++ implementation I DSEL (Domain Specific Embedded Language) I Rely on STL & Boost for zen style I Use OpenMP 3.1 to leverage CPU parallelism I No compiler cannot generate kernels on GPU yet • Use Doxygen to generate I Documentation; of triSYCL implementation itself with implementation details I SYCL API by hiding implementation details with macros & Doxygen configuration • Python script to generate parts of LaTeX specification from Doxygen LaTeX output triSYCL — Open Source C++17 & OpenMP-based OpenCL SYCL prototype IWOCL 2015 5 / 23 • I Automatic generation of SYCL specification is a failure.. -
Ambiguous, Informal, and Unsound: Metaprogramming for Naturalness
Ambiguous, Informal, and Unsound: Metaprogramming for Naturalness Toni Mattis Patrick Rein Robert Hirschfeld Hasso Plattner Institute Hasso Plattner Institute Hasso Plattner Institute University of Potsdam University of Potsdam University of Potsdam Potsdam, Germany Potsdam, Germany Potsdam, Germany [email protected] [email protected] [email protected] Abstract ACM Reference Format: Program code needs to be understood by both machines Toni Mattis, Patrick Rein, and Robert Hirschfeld. 2019. Ambigu- and programmers. While the goal of executing programs ous, Informal, and Unsound: Metaprogramming for Naturalness. In Proceedings of the 4th ACM SIGPLAN International Workshop requires the unambiguity of a formal language, program- on Meta-Programming Techniques and Reflection (META ’19), Octo- mers use natural language within these formal constraints to ber 20, 2019, Athens, Greece. ACM, New York, NY, USA, 10 pages. explain implemented concepts to each other. This so called https://doi.org/10.1145/3358502.3361270 naturalness – the property of programs to resemble human communication – motivated many statistical and machine learning (ML) approaches with the goal to improve software engineering activities. 1 Introduction The metaprogramming facilities of most programming en- The complexity of modern software systems requires col- vironments model the formal elements of a program (meta- laboration among multiple programmers. Hence, the source objects). If ML is used to support engineering or analysis code itself becomes an artifact of communication and per- tasks, complex infrastructure needs to bridge the gap be- sisted domain knowledge. The idea that programmers should tween meta-objects and ML models, changes are not reflected “concentrate rather on explaining to human beings what we in the ML model, and the mapping from an ML output back want a computer to do” has been a prominent hypothesis in into the program’s meta-object domain is laborious.