Computer Science 1

Total Page:16

File Type:pdf, Size:1020Kb

Computer Science 1 Computer Science 1 A coordinated MBA/MCS degrees program is also offered in conjunction COMPUTER SCIENCE with the Jesse H. Jones Graduate School of Business. Contact Information Bachelor's Programs Computer Science • Bachelor of Arts (BA) Degree with a Major in Computer Science https://www.cs.rice.edu/ (https://ga.rice.edu/programs-study/departments-programs/ 3122 Duncan Hall engineering/computer-science/computer-science-ba/) 713-348-4834 • Bachelor of Science in Computer Science (BSCS) Degree (https:// ga.rice.edu/programs-study/departments-programs/engineering/ Christopher M. Jermaine computer-science/computer-science-bscs/) Department Chair [email protected] Master's Programs Alan L. Cox • Master of Computer Science (MCS) Degree (https://ga.rice.edu/ Undergraduate Committee Chair programs-study/departments-programs/engineering/computer- [email protected] science/computer-science-mcs/) • Master of Computer Science (MCS) Degree, Online Program (https:// T. S. Eugene Ng ga.rice.edu/programs-study/departments-programs/engineering/ Graduate Committee Chair computer-science/computer-science-mcs-online/) [email protected] • Master of Data Science (MDS) Degree (https://ga.rice.edu/programs- study/departments-programs/engineering/data-science/data- science-mds/) Computer science is concerned with the study of computers and • Master of Data Science (MDS) Degree, Online Program (https:// computing, focusing on algorithms, programs and programming, and ga.rice.edu/programs-study/departments-programs/engineering/ computational systems. The main goal of the discipline is to build a data-science/data-science-mds-online/) systematic body of knowledge, theories, and models that explain the • Master of Science (MS) Degree in the field of Computer Science properties of computational systems and to show how this body of (https://ga.rice.edu/programs-study/departments-programs/ knowledge can be used to produce solutions to real-world computational engineering/computer-science/computer-science-ms/) problems. Computer science is the intellectual discipline underlying information Doctoral Program technology, which is widely accepted now as the ascendant technology • Doctor of Philosophy (PhD) Degree in the field of Computer Science of the next century. Students in computer science at Rice benefit from the (https://ga.rice.edu/programs-study/departments-programs/ latest in equipment and ideas as well as the flexibility of the educational engineering/computer-science/computer-science-phd/) programs. The research interests of the faculty include algorithms and complexity, artificial intelligence and robotics, compilers, distributed and parallel computation, graphics and visualization, operating systems, and Coordinated Program programming languages. • Master of Computer Science (MCS) Degree / Master of Business Administration (MBA) Degree (https://ga.rice.edu/programs-study/ The department offers two undergraduate degrees: the Bachelor of Arts departments-programs/engineering/computer-science/business- (BA) degree and the Bachelor of Science in Computer Science (BSCS) administration-mba-computer-science-mcs/) degree. At the graduate level, the department offers a PhD degree as well as two Chair master’s degrees: the professional Master of Computer Science (MCS) Christopher M. Jermaine degree, the professional Master of Data Science (MDS) degree, and the research-oriented Master of Science (MS) degree. Professors Robert S. Cartwright, Jr. • The MCS and MDS degrees are professional degrees for students Keith D. Cooper intending to pursue a technical career. Both have an on-premise and Alan L. Cox a fully online option. Students are admitted directly into one or the Ronald N. Goldman other option and cannot switch between the two, but the resulting Christopher M. Jermaine degree is the same. David B. Johnson • The MS degree is a research degree requiring a thesis in addition to Lydia Kavraki coursework. The MS degree is primarily for students pursuing their John M. Mellor-Crummey PhD. Typically, students are not admitted directly to the MS program. Luay K. Nakhleh Students wishing to pursue a terminal master's degree should apply T. S. Eugene Ng to the MCS program. Krishna Palem • Students wishing to pursue a PhD should apply directly to the PhD Scott Rixner program. Devika Subramanian Moshe Vardi Dan Seth Wallach 2020-2021 General Announcements PDF Generated 08/16/21 2 Computer Science Joe D. Warren Dror Fried Juan Hernandez-Vega Associate Professors Huw Ogilvie Abdullah Al Redwan Newaz Swarat Chaudhuri Assistant Professors Research Scientists and Programmers Laksono Adhianto Ang Chen Zoran Budimlic Nathan Dautenhahn Akihiro Hayashi Anastasios Kyrillidis Mark Krentel Konstantinos Mamouras Mark Moll Anshumali Shrivastava Doug Moore Todd Treangen Vijay Murali Dung "Zung" Nguyen Research Professor Scott K. Warren Vivek Sarkar Jia Zou Professors in the Practice For Rice University degree-granting programs: To view the list of official course offerings, please see Rice’s Scott E. Cutler Course Catalog (https://courses.rice.edu/admweb/!SWKSCAT.cat? p_action=cata) Lecturers To view the most recent semester’s course schedule, please see Rice's John Greiner Course Schedule (https://courses.rice.edu/admweb/!SWKSCAT.cat) Mackale Joyner Risa Myers Computer Science (COMP) Stephen Wong COMP 100 - INTRODUCTION TO COMPUTING AND INFORMATION SYSTEMS Professors, Joint Appointments Short Title: INTRO COMPUTING & INFO SYS Richard G. Baraniuk Department: Computer Science Joseph R. Cavallaro Grade Mode: Standard Letter Edward W. Knightly Course Type: Lecture/Laboratory Andrew J. Schaefer Distribution Group: Distribution Group III Peter J. Varman Credit Hours: 3 Restrictions: Enrollment is limited to Undergraduate, Undergraduate Associate Professors, Joint Appointment Professional or Visiting Undergraduate level students. Course Level: Undergraduate Lower-Level Genevera I. Allen Description: An introduction to organizing, analyzing, and presenting Ashok Veeraraghavan information using databases and spreadsheets. No programming involved, and no computing background expected. Assistant Professors, Joint Appointments Course URL: www.clear.rice.edu/comp100/ (http://www.clear.rice.edu/ Ankit Patel comp100/) Akane Sano COMP 105 - AP/OTH CREDIT COMPUTER SCIENCE Short Title: AP/OTH CREDIT COMPUTER SCIENCE Adjunct Professors Department: Computer Science Wah Chiu Grade Mode: Transfer Courses Jack Dongarra Course Type: Transfer Steven J. Wallach Credit Hours: 3 Restrictions: Enrollment is limited to Undergraduate, Undergraduate Adjunct Associate Professor Professional or Visiting Undergraduate level students. Course Level: Undergraduate Lower-Level Ken Chen Description: This course provides credit for students who have Adjunct Assistant Professors successfully completed approved examinations, such as Advanced Placement exams. This credit counts toward the total credit hours Julia Badger required for graduation. Erez Lieberman-Aiden Postdoctoral Research Associates Dinler Antunes Dipak Chaudhari Didier Devaurs 2020-2021 General Announcements PDF Generated 08/16/21 Computer Science 3 COMP 130 - ELEMENTS OF ALGORITHMS AND COMPUTATION COMP 162 - INTRODUCTION TO GAME CONTENT CREATION Short Title: ELEMENTS OF ALGORITHMS & COMP Short Title: INTRO TO GAME CONTENT CREATION Department: Computer Science Department: Computer Science Grade Mode: Standard Letter Grade Mode: Standard Letter Course Type: Lecture Course Type: Lecture/Laboratory Distribution Group: Distribution Group III Credit Hours: 3 Credit Hours: 4 Restrictions: Enrollment is limited to Undergraduate, Undergraduate Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students. Professional or Visiting Undergraduate level students. Course Level: Undergraduate Lower-Level Course Level: Undergraduate Lower-Level Description: Explore how modern game content is created, and how it Description: An introduction to computation taught by solving real-world interacts with the underlying technology. Beginning with an explanation problems in architecture, statistics, linguistics, social networks, visual of how games are developed and what role content plays in the process, pattern recognition, and the simulation of complex systems in ecology. the class will learn to use 3D Studio Max, Photoshop, and game-native Technical topics include how to model computational artifacts operating scripting as they create working content for an established game project. in the world, how to design and implement algorithmic solutions in Course URL: www.owlnet.rice.edu/~comp162 (http:// Python, and how to experimentally test and evaluate computational www.owlnet.rice.edu/~comp162/) systems. COMP 180 - PRINCIPLES OF COMPUTING COMP 140 - COMPUTATIONAL THINKING Short Title: PRINCIPLES OF COMPUTING Short Title: COMPUTATIONAL THINKING Department: Computer Science Department: Computer Science Grade Mode: Standard Letter Grade Mode: Standard Letter Course Type: Lecture/Laboratory Course Type: Lecture/Laboratory Distribution Group: Distribution Group III Distribution Group: Distribution Group III Credit Hours: 4 Credit Hours: 4 Restrictions: Enrollment is limited to Undergraduate, Undergraduate Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students. Professional or Visiting Undergraduate level students. Course Level: Undergraduate Lower-Level Course Level: Undergraduate Lower-Level Prerequisite(s): COMP 130 or COMP 140 or COMP 160 Description:
Recommended publications
  • Donald Knuth Fletcher Jones Professor of Computer Science, Emeritus Curriculum Vitae Available Online
    Donald Knuth Fletcher Jones Professor of Computer Science, Emeritus Curriculum Vitae available Online Bio BIO Donald Ervin Knuth is an American computer scientist, mathematician, and Professor Emeritus at Stanford University. He is the author of the multi-volume work The Art of Computer Programming and has been called the "father" of the analysis of algorithms. He contributed to the development of the rigorous analysis of the computational complexity of algorithms and systematized formal mathematical techniques for it. In the process he also popularized the asymptotic notation. In addition to fundamental contributions in several branches of theoretical computer science, Knuth is the creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system, and the Computer Modern family of typefaces. As a writer and scholar,[4] Knuth created the WEB and CWEB computer programming systems designed to encourage and facilitate literate programming, and designed the MIX/MMIX instruction set architectures. As a member of the academic and scientific community, Knuth is strongly opposed to the policy of granting software patents. He has expressed his disagreement directly to the patent offices of the United States and Europe. (via Wikipedia) ACADEMIC APPOINTMENTS • Professor Emeritus, Computer Science HONORS AND AWARDS • Grace Murray Hopper Award, ACM (1971) • Member, American Academy of Arts and Sciences (1973) • Turing Award, ACM (1974) • Lester R Ford Award, Mathematical Association of America (1975) • Member, National Academy of Sciences (1975) 5 OF 44 PROFESSIONAL EDUCATION • PhD, California Institute of Technology , Mathematics (1963) PATENTS • Donald Knuth, Stephen N Schiller. "United States Patent 5,305,118 Methods of controlling dot size in digital half toning with multi-cell threshold arrays", Adobe Systems, Apr 19, 1994 • Donald Knuth, LeRoy R Guck, Lawrence G Hanson.
    [Show full text]
  • Leading the Way in Scientific Computing. Addison-Wesley. I When Looking for the Best in Scientific Computing, You've Come to Rely on Addison-Wesley
    Leading the way in scientific computing. Addison-Wesley. I When looking for the best in scientific computing, you've come to rely on Addison-Wesley. I Take a moment to see how we've made our list even stronger. The LATEX Companion sional programming languages. This book is the definitive user's Michael Goossens, Frank Mittelbach, and Alexander Samarin guide and reference manual for the CWEB system. This book is packed with information needed to use LATEX even 1994 (0-201 -57569-8) approx. 240 pp. Softcover more productively. It is a true companion to Leslie Lamport's users guide as well as a valuable complement to any LATEX introduction. Concrete Mathematics. Second Edition Describes the new LATEX standard. Ronald L. Graham, Donald E. Knuth, and Oren Patashnick 1994 (0-201 -54 199-8) 400 pp. Softcover With improvements to almost every page, the second edition of this classic text and reference introduces the mathematics that LATEX: A Document Preparation System, Second Edition supports advanced computer programming. Leslie Lamport 1994 (0-201 -55802-5) 672 pp. Hardcover The authoritative user's guide and reference manual has been revised to document features now available in the new standard Applied Mathematics@: Getting Started, Getting It Done software release-LATEX~E.The new edition features additional styles William T. Shaw and Jason Tigg and functions, improved font handling, and much more. This book shows how Mathematics@ can be used to solve problems in 1994 (0-201-52983-1) 256 pp. Softcover the applied sciences. Provides a wealth of practical tips and techniques. 1 994 (0-201 -542 1 7-X) 320 pp.
    [Show full text]
  • Types in Logic, Mathematics, and Programming from the Handbook of Proof Theory
    CHAPTER X Types in Logic, Mathematics and Programming Robert L. Constable Computer Science Department, Cornell University Ithaca, New York 1~853, USA Contents 1. Introduction ..................................... 684 2. Typed logic ..................................... 692 3. Type theory ..................................... 726 4. Typed programming languages ........................... 754 5. Conclusion ...................................... 766 6. Appendix ...................................... 768 References ........................................ 773 HANDBOOK OF PROOF THEORY Edited by S. R. Buss 1998 Elsevier Science B.V. All rights reserved 684 R. Constable 1. Introduction Proof theory and computer science are jointly engaged in a remarkable enter- prise. Together they provide the practical means to formalize vast amounts of mathematical knowledge. They have created the subject of automated reasoning and a digital computer based proof technology; these enable a diverse community of mathematicians, computer scientists, and educators to build a new artifact a globally distributed digital library of formalized mathematics. I think that this artifact signals the emergence of a new branch of mathematics, perhaps to be called Formal Mathematics. The theorems of this mathematics are completely formal and are processed digitally. They can be displayed as beautifully and legibly as journal quality mathematical text. At the heart of this library are completely formal proofs created with computer assistance. Their correctness is based on the axioms and rules of various foundational theories; this formal accounting of correctness supports the highest known standards of rigor and truth. The need to formally relate results in different foundational theories opens a new topic in proof theory and foundations of mathematics. Formal proofs of interesting theorems in current foundational theories are very large rigid objects. Creating them requires the speed and memory capacities of modern computer hardware and the expressiveness of modern software.
    [Show full text]
  • Concrete Mathematics: Foundation for Computer Science Free Download
    CONCRETE MATHEMATICS: FOUNDATION FOR COMPUTER SCIENCE FREE DOWNLOAD Ronald Graham,Oren Patashnik,Donald Ervin Knuth | 672 pages | 10 Mar 1994 | Pearson Education (US) | 9780201558029 | English | Boston, United States Concrete Mathematics: A Foundation for Computer Science, Second Edition Seller Inventory ING Reprinted as chapter 18 of the book Digital Typography. Table of contents Product information. The second edition includes important new material about the revolutionary Gosper-Zeilberger algorithm for mechanical summation. Midpoint between a discrete math text and dedicated algorithms text. Original Title. However, I promise to reply in due time. By continuing, you're agreeing to use of cookies. Dewey Decimal. Concrete Mathematics: Foundation for Computer Science response to the widespread use of the first edition as a reference book, the Concrete Mathematics: Foundation for Computer Science and index have also been expanded, and additional nontrivial improvements can be found on almost every page. Credits for Exercises. Apr 15, Bishu rated it it was amazing. Donald Knuth. Concrete Mathematics: Foundation for Computer Science Reviews. Dust Jacket Condition: New. Knuth is known throughout the world for his pioneering work on algorithms and programming techniques, for his invention of the Tex and Metafont systems for computer typesetting, and for his prolific and influential writing. If you like books and love to build cool products, we may be looking for you. This second edition includes important new material about mechanical summation. It is an indispensable text and reference not only Concrete Mathematics: Foundation for Computer Science computer scientists - the authors themselves rely heavily on it! It is an indispensable text and reference not only for computer scientists - the authors themselves rely heavily on it! Other Editions Example 4: A convoluted recurrence.
    [Show full text]
  • Math Never Seen
    TUGboat, Volume 31 (2010), No. 2 221 Math never seen ò Quality criteria Johannes Küster What makes a notation superior to another? What makes a symbol successful (in the sense that other mathemati- Abstract cians accept and adopt it)? e following list gives the Why have certain mathematical symbols and notations most important quality criteria. A mathematical symbol gained general acceptance while others fell into oblivion? or notation should be: To answer this question I present quality criteria for • readable, clear and simple mathematical symbols. I show many unknown, little- • needed known or little-used notations, some of which deserve • international (or derived from Latin) much wider use. • mnemonic I also show some new symbols and some ideas for new notations, especially for some well-known concepts • writable which lack a good notation (Stirling numbers, greatest • pronounceable common divisor and least common multiple). • similar and consistent • distinct and unambiguous • adaptable Ô Introduction • available For TEX’s "20th birthday it seems appropriate to present is list is certainly not exhaustive, but these are the most some ne points of mathematical typography and some important points. Not all criteria are equally important, ideas for new symbols and notations. Let’s start with a and some may conict with others, so few symbols really quotation from e METAFONTbook [ , p. ]: fulll all criteria. — Let me explain each point in turn. Above all, a notation should be readable — but what “Now that authors have for the rst time the power constitutes readability? Certainly it comprises clear and to invent new symbols with great ease, and to have simple.
    [Show full text]
  • ACM Bytecast Don Knuth - Episode 2 Transcript
    ACM Bytecast Don Knuth - Episode 2 Transcript Rashmi: This is ACM Bytecast. The podcast series from the Association for Computing Machinery, the ​ ​ world's largest educational and scientific computing society. We talk to researchers, practitioners, and innovators who are at the intersection of computing research and practice. They share their experiences, the lessons they've learned, and their own visions for the future of computing. I am your host, Rashmi Mohan. Rashmi: If you've been a student of computer science in the last 50 years, chances are you are very familiar and somewhat in awe of our next guest.An author, a teacher, computer scientist, and a mentor, Donald Connote wears many hats. Don, welcome to ACM Bytecast. ​ ​ Don: Hi. Rashmi: I'd like to lead with a simple question that I ask all my guests. If you could please introduce yourself and talk about what you currently do and also give us some insight into what drew you into this field of work. Don: Okay. So I guess the main thing about me is that I'm 82 years old, so I'm a bit older than a lot of the other people you'll be interviewing. But even so, I was pretty young when computers first came out. I saw my first computer in 1956 when I was 18 years old. So although people think I'm an old timer, really, there were lots of other people way older than me. Now, as far as my career is concerned, I always wanted to be a teacher. When I was in first grade, I wanted to be a first grade teacher.
    [Show full text]
  • The Concrete Mathematics of Microfluidic Mixing, Part I
    The Concrete Mathematics of Microfluidic Mixing, Part I∗ UNM TR-CS-2006-09 Jennifer Sager, Maxwell Young, and Darko Stefanovic Department of Computer Science University of New Mexico Albuquerque, NM 87131 May 1, 2006 ∗Supplementary Material to Characterization of Transverse Channel Concentration Profiles Obtainable With a Class of Microfluidic Networks, published in Langmuir, 22(9), 4452–4455 (2006) Abstract We analyze mathematically a previously reported class of passive microfluidic mixing networks. The networks produce nonhomogeneous concentrations in the out- put channel, resulting in diverse concentration profiles. We formally prove that all profiles obtainable with this class of networks can be described as polynomials of degree no higher than the number of input channels less one. We derive explicit for- mulas for the calculation of resultant output concentration profiles and conversely for the calculation of input concentrations needed to obtain set output profiles. 1 Introduction Microfluidic technology presents the opportunity for low-cost fabrication of sophisticated reaction assemblies in which chemical and biochemical reactions, including open-system reactions, can be performed with very small reactant volumes and with high volumetric accuracy. For instance, microfluidic assemblies have found uses in the design of reac- tion chambers for DNA computing [14, 15, 4]. Fluid flow in microfluidic channels is entirely laminar, owing to typical channel cross-sections, flow velocities, and fluid prop- erties. Therefore, when two miscible flows are merged into a common channel, they mix only by diffusion. This means that mixing is generally slower than with turbulent flows and special care must be taken to achieve complete mixing of flows (assuming this is desired).
    [Show full text]
  • A Handbook of Mathematical Discourse
    A Handbook of Mathematical Discourse Version 0.9 Charles Wells April 25, 2002 Charles Wells Professor Emeritus of Mathematics, Case Western Reserve University Affiliate Scholar, Oberlin College Address: 105 South Cedar Street Oberlin, OH 44074, USA Email: [email protected] Website: http://www.cwru.edu/artsci/math/wells/home.html Copyright c 2002 by Charles Wells Contents List of Words and Phrases Entries Preface Bibliography About this Handbook Citations Overview Point of view Index Coverage Left To Do Descriptive and Prescriptive Citations Citations needed Presentation Information needed Superscripted cross references TeX Problems Acknowledgments Things To Do contents wordlist index List of Words and Phrases abstract algebra arbitrary brace compartmentaliza- abstraction argument by bracket tion abuse of notation analogy but componentwise accumulation of argument calculate compositional attributes argument call compute action arity cardinality concept image ad-hoc article cases conceptual blend polymorphism assertion case conceptual affirming the assume category concept consequent assumption character conditional aha at most check assertion algebra attitudes circumflex conjunction algorithm addiction back formation citation connective algorithm bad at math classical category consciousness- alias bare delimiter closed under raising all barred arrow code example all notation codomain consequent always bar cognitive consider analogy behaviors dissonance constructivism and be collapsing contain angle bracket binary operation collective plural
    [Show full text]
  • Donald E. Knuth Papers SC0097
    http://oac.cdlib.org/findaid/ark:/13030/kt2k4035s1 Online items available Guide to the Donald E. Knuth Papers SC0097 Daniel Hartwig & Jenny Johnson Department of Special Collections and University Archives August 2018 Green Library 557 Escondido Mall Stanford 94305-6064 [email protected] URL: http://library.stanford.edu/spc Note This encoded finding aid is compliant with Stanford EAD Best Practice Guidelines, Version 1.0. Guide to the Donald E. Knuth SC00973411 1 Papers SC0097 Language of Material: English Contributing Institution: Department of Special Collections and University Archives Title: Donald E. Knuth papers Creator: Knuth, Donald Ervin, 1938- source: Knuth, Donald Ervin, 1938- Identifier/Call Number: SC0097 Identifier/Call Number: 3411 Physical Description: 39.25 Linear Feet Physical Description: 4.3 gigabyte(s)email files Date (inclusive): 1962-2018 Abstract: Papers reflect his work in the study and teaching of computer programming, computer systems for publishing, and mathematics. Included are correspondence, notes, manuscripts, computer printouts, logbooks, proofs, and galleys pertaining to the computer systems TeX, METAFONT, and Computer Modern; and to his books THE ART OF COMPUTER PROGRAMMING, COMPUTERS & TYPESETTING, CONCRETE MATHEMATICS, THE STANFORD GRAPHBASE, DIGITAL TYPOGRAPHY, SELECTED PAPERS ON ANALYSIS OF ALGORITHMS, MMIXWARE : A RISC COMPUTER FOR THE THIRD MILLENNIUM, and THINGS A COMPUTER SCIENTIST RARELY TALKS ABOUT. Special Collections and University Archives materials are stored offsite and must be paged 36-48 hours in advance. For more information on paging collections, see the department's website: http://library.stanford.edu/depts/spc/spc.html. Immediate Source of Acquisition note Gift of Donald Knuth, 1972, 1980, 1983, 1989, 1996, 1998, 2001, 2014, 2015, 2019.
    [Show full text]
  • Euler in Use Context Support for the Euler Math Font, with Examples
    16 MAPS 32 Adam T. Lindsay Euler in Use ConTEXt support for the Euler math font, with examples Abstract The Euler math font was designed by Hermann Zapf. ConTEXt support was limited until now. We show how to use the Eulervm LaTEX package in combination with some new math definitions and typescripts to give a more informal look to your equations. Keywords ConTeXt, fonts, Euler, math Introduction The Euler math font was designed by Hermann Zapf. The underlying philosophy of Zapf’s Euler design was to “capture the flavor of mathematics as it might be written by a mathematician with excellent handwriting.” ConTEXt support had previously been limited, but now includes nearly all features available with ConTEXt’s mathe- matics support. We show how to use the Eulervm LaTEX package in combination with some relatively new math definitions and typescripts to give a new look to your equations. Along the way, we provide several examples using ConTEXt’s typescript and typeface mechanisms. Although Euler has a somewhat informal feel that may make it inappropriate in certain situations, it does have certain advantages: as it does not directly mirror the form of any particular roman font (and has a robust weight), it mates with many more fonts than Computer Modern Math or others that are available. As D.E. Knuth himself had a hand in its creation, it offers features like optical scaling (e.g., script and scriptscript sizes) and multiple weights (i.e., bold math) not seen in most ‘alternative’ fonts. Most of the disadvantages that previously came with Euler use, chief among them poor glyph coverage, have disappeared with Walter Schmidt’s Euler-VM package.
    [Show full text]
  • Typesetting Concrete Mathematics Testfont Routine [5, Appendix HI; These Tests Put Donald E
    TUGboat, Volume 10 (1989), No. 1 3 1 Typesetting Concrete Mathematics testfont routine [5, Appendix HI; these tests put Donald E. Knuth the characters through their basic paces by type- Stanford University setting formulas such as /A+ ,B1+ C + ... + Z1, a2tb2+c2t..+z2, az+br+c2+...+p,and During 1987 and 1988 I prepared a textbook entitled 3 + 5 + + + . + 2. I noticed among other things Concrete Mathematics [I],written with co-authors that the Fraktur characters had all been placed too Ron Graham and Oren Patashnik. I tried my best high above the baseline, and that more blank space to make the book mathematically interesting, but was needed at the left and right of the characters in I also knew that it would be typographically in- subscript/superscript sizes. After fixing such prob- teresting-because it would be the first major use lems I also needed to set the italic corrections so of a new typeface by Hermann Zapf, commissioned that subscripts and superscripts would have proper by the American Mathematical Society. This type- offsets; and I needed to define suitable kerns with face, called AMS Euler, had been carefully digitized a \skewchar so that accents would appear visually and put into METAFONT form by Stanford's digital centered. AMS Euler contains more than 400 char- typography students [a]; but it had not yet been acters, and Hermann had made them beautiful; my "tuned up" for real applications. My new book job was to find the right adjustments to the spacing served as an ideal test case, because (1) it involved so that they would fit properly into mathematics.
    [Show full text]
  • Introduction 9 : Semantic Analysis I
    CSc 453 Compilers and Systems Software Introduction 9 : Semantic Analysis I Department of Computer Science University of Arizona [email protected] Copyright °c 2009 Christian Collberg Compiler Phases Semantic Analysis tokens The parser returns an abstract syntax tree (AST), a source Lexer Parser structured representation of the input program. All information present in the input program (except maybe for AST errors errors comments) is also present in the AST. IR AST Literals (integer/real/. constants) and identifiers are Interm. Semantic Optimize Code Gen Analyser available as AST input attributes. IR During semantic analysis we add new attributes to the AST, and traverse the tree to evaluate these attributes and emit errors Machine Code Gen error messages. We are here! At compiler construction time we have to decide which attributes are needed, how they should be evaluated, and the asm order in which they should be evaluated. Why Semantic Analysis? Typical Semantic Errors program X; "multiple declaration" 1 Is the program statically correct? If not, report errors to user: procedure P ( x,y : integer); “undeclared variable” var z,x : char; "type mismatch" “illegal procedure parameter” begin “type incompatibility” y := "x" "type name expected" 2 Make preparations for later compiler phases (code generation end; and optimization): var k : P; "identifier not declared" Compute types of variables. var z : R; Compute addresses of variables. type R = array [9..7] of char; Store transfer modes of procedure parameters. var x,y,t : integer; Compute labels for control structures (maybe). begin "empty range" .... end Y. "wrong closing identifier" Static Semantic Rules program X; .... begin "too few parameters" Static Semantics: ≈ type checking rules.
    [Show full text]