COS 301 Programming Languages

Total Page:16

File Type:pdf, Size:1020Kb

COS 301 Programming Languages COS 301 Topics Programming Languages • Reasons for Studying Concepts of Programming Languages • Programming Domains Preliminaries • Language Evaluation Criteria • Influences on Language Design • Language Categories • Language Design Trade-Offs • Implementation Methods • Programming Environments Why Study Concepts of Programming Why Study Concepts of Programming Languages? Languages? • Increased ability to express ideas • To improve expressiveness • Improved background for choosing appropriate – Expressiveness increases with vocabulary languages – Ability to visualize solutions increases with new programming constructs and depth of abstraction • Increased ability to learn new languages – If the only tool you know is a hammer, the only • Better understanding of significance of solutions you can see involve nails implementation – Even if a language does not directly support a • Better use of languages that are already particular abstract feature (e.g. associative array) known you can simulate it as part of solution • Overall advancement of computing Gain improved background for choosing Improve your ability to learn new appropriate languages languages • A fundamental result of theory is that all • First language or two are difficult and time- languages are equivalent in computing power consuming to learn • Anything that can be computed in Java or • These languages also constrict your view of Python can also be computed in BASIC, COBOL or languages – As you learn the abstract concepts underlying FORTRAN programming languages you acquire a framework for – But some languages are better in terms of understanding a new language expressiveness for a given problem – Eventually you can read many unfamiliar languages – Learning just one or two languages in great depth can with little or minimal effort be hazardous to your career – Current trend is to combine relatively simple language with a huge library. Why re-invent the • Let’s consider some problems… wheel? The Tiobe Index Gain a better understanding of significance of implementation • See • Programming languages provide a virtual http://www.tiobe.com/index.php/content/pap machine with which we express problems and erinfo/tpci/index.html their solutions. • Counts top languages by counting hits of the • The virtual machine has to execute on a real one most popular search engines • Understanding the implementation of a • See programming language helps to http://www.tiobe.com/index.php/content/pap – Achieve more efficient problem solutions erinfo/tpci/tpci_definition.htm – Avoid subtle bugs caused by particular language implementations Gain better use of current languages Programming Paradigms • As languages evolve, they become large and • A programming paradigm is a pattern of complex compared to earlier languages problem-solving thought that underlies a • Many modern languages are multi-paradigm particular genre of programs and languages. languages – procedural, functional, object • Many people classify languages into four main oriented paradigms: • A broad understanding of concepts and – Imperative (Procedural) paradigms allows you to better leverage your – Object-oriented knowledge of current languages – Functional – Logic (declarative) Imperative or Procedural Paradigm A Von Neumann Computer • The oldest programming model • Follows the classic von Neumann-Eckert model: – Program and data are indistinguishable in memory – Program = a sequence of commands – State = values of all variables when program runs • Large programs use procedural abstraction • Language has assignments, loops, conditionals, procedure and functional calls, control flow • Example imperative languages: • Cobol, Fortran, C, Ada, Perl, … Object Oriented (OO) Paradigm Functional Paradigm • An OO Program is a collection of objects that interact by • Functional programming models a computation as a passing messages that transform the state. collection of mathematical functions. • Concepts of OOP: – Input = domain – Sending Messages – Output = range – Inheritance • Functional languages are characterized by: – Polymorphism – Functional composition • Example OO languages: – Recursion – Smalltalk, Java, C++, C#, and Python – Conditional evaluation • We will look at Smalltalk in detail later. Languages such • Example functional languages: as Java and C++ are OOP concepts grafted onto a – Lisp, Scheme, ML, Haskell, … procedural core – Surprisingly Javascript supports functional programming very well! Logic Paradigm Declarative Languages • Logic programming declares what outcome the • Prolog is a unique language with its basic ideas program should accomplish, rather than how it of facts, rules and atoms combined into a should be accomplished. program often called a database • When studying logic programming we see: • There are other declarative languages where a “program” consists only of statements declaring – Programs as sets of constraints on a problem what the result should be, not how to do it – Programs that achieve all possible solutions • SQL (Structured Query Language) is the prime – Programs that are nondeterministic example • Example logic programming languages: – But all SQL implementations have procedural – Prolog extensions (PL/SQL, T-SQL, etc.) • XPath is another example Markup Hybrid Languages Markup Hybrids • Pure markup languages are mostly based on • XSLT (Extensible Stylesheet Language Standardized General Markup Language (SGML) Transformations) is a declarative XML based • HTML and XML are examples of two pure markup language used for transforming from XML to XML languages • Often used to transform XML documents into – No processing is done by the language HTML (a subset of XML) for presentation in – Markup provides directions to an external tool browsers • But markup languages have been extended to • Requires a processing engine that takes XML and support some programming XSLT as input and outputs XML (or HTML) • Examples: JSTL, XSLT • Capabilities overlap XQuery Programming Domains Programming Domains • Scientific applications • Computer software operates in a large number of – Large numbers of floating point computations; use of arrays different domains – Fortran – Scientific applications • Business applications – Business applications – Produce reports, use decimal numbers and characters – Artificial intelligence – COBOL – Systems programming • Artificial intelligence – The Internet – Symbols rather than numbers manipulated; use of linked lists – LISP – Multimedia • Systems programming – Embedded Systems – Need efficiency because of continuous use – Industrial Control – C • Some programming languages have been designed • Web Software for specific domains – Eclectic collection of languages: markup (e.g., XHTML), scripting (e.g., PHP), general-purpose (e.g., Java) • Others were explicitly design as general purpose Scientific Applications Scientific Applications • AKA Number Crunching. The first computer • Earliest high-level languages (FORTRAN, from applications (1940’s) FORmula TRANslation) were designed for • Normally involve simple data structures, simple scientific computing control structures and large numbers of floating • Efficiency is primary concern -- competition point computations with assembler • Abstraction is usually applied OUTSIDE the • Algol 60 was designed to provide better language before the computational problem is expressiveness and abstraction but failed to expressed in a language catch on • FORTRAN is still very much in use – only recently has C begun to be adopted in the domain Business Applications COBOL • Early 1950’s people realized that computers • More lines of COBOL are in existence and still were very good at doing tedious and boring tasks running than any other computer language • Computers were specifically designed for • If you want job security learn COBOL – there’s business (high I/O capabilities) as were always demand for people who can maintain the languages COBOL corpus • COBOL (COmmon Business Oriented Language) • Other developments in business applications are was first designed in 1959 (based on Grace of little interest to computer science; e.g., RPG Hopper’s Flow-Matic language) (Report Program Generator) • In 2002 object-oriented extensions were grafted • Not discussed much in text onto the language Database Management Systems (DBMS) and DBMS Languages associated languages • Usually neglected in programming language texts • DBMS programming languages are no different – A DBMS is a storage system and programming from other programming languages with the environment designed for optimal, error-free and exception that they operate against, and are efficient storage and retrieval of data tightly bound to, a persistent store of data – The “back end” of both business and scientific systems • Most well known are the relational DBMS, all of which support Structured Query Language (SQL) • Many interesting OO languages and DBMS are evolving SQL Artificial Intelligence (AI) • SQL is a “non-procedural language” • Characterized by symbolic rather than numeric – You say what you want rather than expressing an manipulation of data algorithm and hoping that the results are what you want • Goals include mimicking of human intelligence – In practice it not possible to express everything as a and design of systems that can perform well in query, so all DBMS support procedural extensions to areas that humans perform well SQL • List structures seem lend to themselves well to • Other language families are associated with expressiveness in this area other storage systems
Recommended publications
  • Extensible Markup Language (XML) and Its Role in Supporting the Global Justice XML Data Model
    Extensible Markup Language (XML) and Its Role in Supporting the Global Justice XML Data Model Extensible Markup Language, or "XML," is a computer programming language designed to transmit both data and the meaning of the data. XML accomplishes this by being a markup language, a mechanism that identifies different structures within a document. Structured information contains both content (such as words, pictures, or video) and an indication of what role content plays, or its meaning. XML identifies different structures by assigning data "tags" to define both the name of a data element and the format of the data within that element. Elements are combined to form objects. An XML specification defines a standard way to add markup language to documents, identifying the embedded structures in a consistent way. By applying a consistent identification structure, data can be shared between different systems, up and down the levels of agencies, across the nation, and around the world, with the ease of using the Internet. In other words, XML lays the technological foundation that supports interoperability. XML also allows structured relationships to be defined. The ability to represent objects and their relationships is key to creating a fully beneficial justice information sharing tool. A simple example can be used to illustrate this point: A "person" object may contain elements like physical descriptors (e.g., eye and hair color, height, weight), biometric data (e.g., DNA, fingerprints), and social descriptors (e.g., marital status, occupation). A "vehicle" object would also contain many elements (such as description, registration, and/or lien-holder). The relationship between these two objects—person and vehicle— presents an interesting challenge that XML can address.
    [Show full text]
  • Odfweave Manual
    The OdfWeave Package Max Kuhn max.kuhn@pfizer.com August 7, 2007 1 Introduction The Sweave function (Leisch, 2002) is a powerful component of R. It can be used to combine R code with LATEX so that the output of the code is embedded in the processed document. The capabilities of Sweave were later extended to HTML format in the R2HTML package. A written record of an analysis can be created using Sweave, but additional annotation of the results may be needed such as context–specific interpretation of the results. Sweave can be used to automatically create reports, but it can be difficult for researchers to add their subject–specific insight to pdf or HTML files. The odfWeave package was created so that the functionality of Sweave can used to generate documents that the end–user can easily edit. The markup language used is the Open Document Format (ODF), which is an open, non– proprietary format that encompasses text documents, presentations and spreadsheets. Version 1.0 of the specification was finalized in May of 2005 (OASIS, 2005). One year later, the format was approved for release as an ISO and IEC International Standard. There are several editors/office suites that can produce ODF files. OpenOffice is a free, open source editor that, as of version 2.0, uses ODF as the default format. odfWeave has been tested with OpenOffice to produce text documents. As of the current version, odfWeave processing of presentations and spreadsheets should be considered to be experimental (but should be supported in subsequent versions). OpenOffice can be used to export the document to MS Word, rich text format, HTML, plain text or pdf formats.
    [Show full text]
  • Extensible Markup Language (XML)
    15 Extensible Markup Language (XML) Objectives • To mark up data, using XML. • To understand the concept of an XML namespace. • To understand the relationship between DTDs, Schemas and XML. • To create Schemas. • To create and use simple XSLT documents. • To transform XML documents into XHTML, using class XslTransform. • To become familiar with BizTalk™. Knowing trees, I understand the meaning of patience. Knowing grass, I can appreciate persistence. Hal Borland Like everything metaphysical, the harmony between thought and reality is to be found in the grammar of the language. Ludwig Wittgenstein I played with an idea and grew willful, tossed it into the air; transformed it; let it escape and recaptured it; made it iridescent with fancy, and winged it with paradox. Oscar Wilde Chapter 15 Extensible Markup Language (XML) 657 Outline 15.1 Introduction 15.2 XML Documents 15.3 XML Namespaces 15.4 Document Object Model (DOM) 15.5 Document Type Definitions (DTDs), Schemas and Validation 15.5.1 Document Type Definitions 15.5.2 Microsoft XML Schemas 15.5.3 W3C XML Schema 15.5.4 Schema Validation in C# 15.6 Extensible Stylesheet Language and XslTransform 15.7 Microsoft BizTalk™ 15.8 Summary 15.9 Internet and World Wide Web Resources 15.1 Introduction The Extensible Markup Language (XML) was developed in 1996 by the World Wide Web Consortium’s (W3C’s) XML Working Group. XML is a portable, widely supported, open technology (i.e., non-proprietary technology) for describing data. XML is becoming the standard for storing data that is exchanged between applications. Using XML, document authors can describe any type of data, including mathematical formulas, software-configu- ration instructions, music, recipes and financial reports.
    [Show full text]
  • XXX Format Assessment
    Digital Preservation Assessment: Date: 20/09/2016 Preservation Open Document Text (ODT) Format Team Preservation Assessment Version: 1.0 Open Document Text (ODT) Format Preservation Assessment Document History Date Version Author(s) Circulation 20/09/2016 1.0 Michael Day, Paul Wheatley External British Library Digital Preservation Team [email protected] This work is licensed under the Creative Commons Attribution 4.0 International License. Page 1 of 12 Digital Preservation Assessment: Date: 20/09/2016 Preservation Open Document Text (ODT) Format Team Preservation Assessment Version: 1.0 1. Introduction This document provides a high-level, non-collection specific assessment of the OpenDocument Text (ODT) file format with regard to preservation risks and the practicalities of preserving data in this format. The OpenDocument Format is based on the Extensible Markup Language (XML), so this assessment should be read in conjunction with the British Library’s generic format assessment of XML [1]. This assessment is one of a series of format reviews carried out by the British Library’s Digital Preservation Team. Some parts of this review have been based on format assessments undertaken by Paul Wheatley for Harvard University Library. An explanation of the criteria used in this assessment is provided in italics below each heading. [Text in italic font is taken (or adapted) from the Harvard University Library assessment] 1.1 Scope This document will primarily focus on the version of OpenDocument Text defined in OpenDocument Format (ODF) version 1.2, which was approved as ISO/IEC 26300-1:2015 by ISO/IEC JTC1/SC34 in June 2015 [2]. Note that this assessment considers format issues only, and does not explore other factors essential to a preservation planning exercise, such as collection specific characteristics, that should always be considered before implementing preservation actions.
    [Show full text]
  • An Investigation Into World Wide Web Publishing with the Hypertext Markup Language Eric Joseph Cohen
    Rochester Institute of Technology RIT Scholar Works Theses Thesis/Dissertation Collections 11-1-1995 An Investigation into world wide web publishing with the hypertext markup language Eric Joseph Cohen Follow this and additional works at: http://scholarworks.rit.edu/theses Recommended Citation Cohen, Eric Joseph, "An Investigation into world wide web publishing with the hypertext markup language" (1995). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by the Thesis/Dissertation Collections at RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. An Investigation into World Wide Web Publishing with the Hypertext Markup Language by Eric Joseph Cohen A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in the School of Printing Management and Sciences in the College of Imaging Arts and Sciences of the Rochester Institute of Technology November 1995 Thesis Advisor: Professor Frank Romano School of Printing Management and Sciences Rochester Institute of Technology Rochester, New York Certificate of Approval Master1s Thesis This is to certify that the Master's Thesis of Eric joseph Cohen With a major in Graphic Arts Publishing has been approved by the Thesis Committee as satisfactory for the thesis requirement for the Master of Science degree at the convocation of November 1995 Thesis Committee: Frank Romano Thesis Advisor Marie Freckleton Graduate Program Coordinator C. Harold Goffin Director or Designate Title of Thesis: An Investigation into World Wide Web Publishing with the Hypertext Markup Language September 12, 1995 I, Eric Joseph Cohen, hereby grant permission to the Wallace Memorial Library of RIT to reproduce my thesis in whole or in part.
    [Show full text]
  • Chapter 13 XML: Extensible Markup Language
    Chapter 13 XML: Extensible Markup Language - Internet applications provide Web interfaces to databases (data sources) - Three-tier architecture Client | V Application Programs Webserver | V Database Server -HTML common language for Web pages-not suitable for structure data extracted from DB - XML is used to represent structured data and exchange data on the Web for self-describing documents - HTML, static Web pages; when they describe database data, they are called dynamic Web pages 1. Structured, Semi-structured and Unstructured data -Information in databases is a structured data (employee, company, etc), the database checks to ensure that all data follows the structure and constraints specified in the schema 1 - some attributes may be shared among various entities, other attributes may exist only in few entities Semi-structured data; additional attributes can be introduced later Self-describing data as schema can change Example: Collect a list of biographical references related to a certain research project - Books - Technical reports - Research articles in Journals or Conferences Each have different attributes and information; one reference has all information, others have partial; some references may occur in the future Web, tutorials, etc.. Semi-structured data can be represented using a directed graph. 2 3 Two main differences between semi-structured and object model: 1. Schema intermixed with objects 2. No requirements for a predefined schema Unstructured Data: Limited indication of type of data Example: text document; information is embedded in it 4 HTML document has tags, which specify how to display a document, they also specify structure of a document. HTML uses large number of predefined tags: - Document header - Body - Heading levels - Table - Attributes (tags have attributes) (static and dynamic html) XML Hierarchical Data Model (Tree) The basic object is the XML document.
    [Show full text]
  • The History of Computer Language Selection
    The History of Computer Language Selection Kevin R. Parker College of Business, Idaho State University, Pocatello, Idaho USA [email protected] Bill Davey School of Business Information Technology, RMIT University, Melbourne, Australia [email protected] Abstract: This examines the history of computer language choice for both industry use and university programming courses. The study considers events in two developed countries and reveals themes that may be common in the language selection history of other developed nations. History shows a set of recurring problems for those involved in choosing languages. This study shows that those involved in the selection process can be informed by history when making those decisions. Keywords: selection of programming languages, pragmatic approach to selection, pedagogical approach to selection. 1. Introduction The history of computing is often expressed in terms of significant hardware developments. Both the United States and Australia made early contributions in computing. Many trace the dawn of the history of programmable computers to Eckert and Mauchly’s departure from the ENIAC project to start the Eckert-Mauchly Computer Corporation. In Australia, the history of programmable computers starts with CSIRAC, the fourth programmable computer in the world that ran its first test program in 1949. This computer, manufactured by the government science organization (CSIRO), was used into the 1960s as a working machine at the University of Melbourne and still exists as a complete unit at the Museum of Victoria in Melbourne. Australia’s early entry into computing makes a comparison with the United States interesting. These early computers needed programmers, that is, people with the expertise to convert a problem into a mathematical representation directly executable by the computer.
    [Show full text]
  • SGML As a Framework for Digital Preservation and Access. INSTITUTION Commission on Preservation and Access, Washington, DC
    DOCUMENT RESUME ED 417 748 IR 056 976 AUTHOR Coleman, James; Willis, Don TITLE SGML as a Framework for Digital Preservation and Access. INSTITUTION Commission on Preservation and Access, Washington, DC. ISBN ISBN-1-887334-54-8 PUB DATE 1997-07-00 NOTE 55p. AVAILABLE FROM Commission on Preservation and Access, A Program of the Council on Library and Information Resources, 1400 16th Street, NW, Suite 740, Washington, DC 20036-2217 ($20). PUB TYPE Reports Evaluative (142) EDRS PRICE MF01/PC03 Plus Postage. DESCRIPTORS *Access to Information; Computer Oriented Programs; *Electronic Libraries; *Information Retrieval; Library Automation; Online Catalogs; *Preservation; Standards IDENTIFIERS Digital Technology; *SGML ABSTRACT This report explores the suitability of Standard Generalized Markup Language (SGML) as a framework for building, managing, and providing access to digital libraries, with special emphasis on preservation and access issues. SGML is an international standard (ISO 8879) designed to promote text interchange. It is used to define markup languages, which can then encode the logical structure and content of any so-defined document. The connection between SGML and the traditional concerns of preservation and access may not be immediately apparent, but the use of descriptive markup tools such as SGML is crucial to the quality and long-term accessibility of digitized materials. Beginning with a general exploration of digital formats for preservation and access, the report provides a staged technical tutorial on the features and uses of SGML. The tutorial covers SGML and related standards, SGML Document Type Definitions in current use, and related projects now under development. A tiered metadata model is described that could incorporate SGML along with other standards to facilitate discovery and retrieval of digital documents.
    [Show full text]
  • Download CMPEN 270 Design Project 3 Part 1
    Watch the video before the lab! *If you do the lab incorrectly, no excuses are valid, and the video will explain all of the finer details of the lab needed to correctly complete the lab! *Labs will not always be graded before the due date. Do not rely on the ability to resubmit a lab before the due date. *Attend your specific lab section for the best chance to learn and perform well on the labs. NO Late Submissions allowed! *The labs are a very small percentage of the grade, and they are designed to help you learn. Come to class prepared, and with a good mindset, with intentions on learning. The labs are low risk because they are worth little to no points for your overall grade. *TWO labs/homeworks will be dropped at the end of the semester! CMPEN 270 Design Project 3 #1 2021 Resources for the Lab: 1. Tutorial: "http://www.asic-world.com/verilog/veritut.html" Hardware Description Language In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, and most commonly, digital logic circuits. A hardware description language enables a precise, formal description of an electronic circuit that allows for the automated analysis and simulation of an electronic circuit. It also allows for the synthesis of a HDL description into a netlist (a specification of physical electronic components and how they are connected), which can then be placed and routed to produce the set of masks used to create an integrated circuit.
    [Show full text]
  • Definition of Data Exchange Standard for Railway Applications
    PRACE NAUKOWE POLITECHNIKI WARSZAWSKIEJ z. 113 Transport 2016 6/*!1 Uniwersytet Technologiczno-:]! w Radomiu, (,? DEFINITION OF DATA EXCHANGE STANDARD FOR RAILWAY APPLICATIONS The manuscript delivered: March 2016 Abstract: Railway similar to the other branches of economy commonly uses information technologies in its business. This includes, inter alia, issues such as railway traffic management, rolling stock management, stacking timetables, information for passengers, booking and selling tickets. Variety aspects of railway operations as well as a large number of companies operating in the railway market causes that currently we use a lot of independent systems that often should work together. The lack of standards for data structures and protocols causes the need to design and maintain multiple interfaces. This approach is inefficient, time consuming and expensive. Therefore, the initiative to develop an open standard for the exchange of data for railway application was established. This new standard was named railML. The railML is based on Extensible Markup Language (XML) and uses XML Schema to define a new data exchange format and structures for data interoperability of railway applications. In this paper the current state of railML specification and the trend of development were discussed. Keywords: railway traffic control systems, railML, XML 1. INTRODUCTION It is hard to imagine the functioning of the modern world without information technologies. It is a result of numerous advantages of the modern IT solutions. One of the most important arguments for using IT systems is cost optimisation [1, 3, 6]. Variety aspects of railway operations as well as a large number of companies operating in the railway market causes that currently we use a lot of independent systems that often should cooperate.
    [Show full text]
  • Computer Architecture Simulation Using a Register Transfer Language
    COMPUTER ARCHITECTURE SIMULATION USING A REGISTER TRANSFER LANGUAGE, by LESTER BARTEL B. A., Tabor College, 1983 A MASTER'S THESIS submitted in partial fulfillment of the requirements for the degree MASTER OF SCIENCE Department of Computer Science KANSAS STATE UNIVERSITY Manhattan, Kansas 1986 Approved by: Majory 'rofessor A11ED5 b565Q3 .TH- Table of Contents List of Figures v Acknowledgements vi 1 . Introduction 1 1 .1 . Purpose of an Architecture Simulator 1 1 .2 . Instruction Set Processor 3 1 .3 . Machine Cycle Simulator 3 1 .4 . Register Transfer Language 4 1 .5 . Silicon Compilers 6 1 .6 . Definitions 8 2 . Review of Existing CHDLs 10 2 .1 . Representative CHDLs 10 2 .1 .1 . CDL 10 2 .1 .2 . ISP 11 2 .1 .3 . AHPL 11 2 .1 .4 . DDL 13 2 .1 .5 . ADLIB 14 2 .1 .6 . DTMS 15 2 .1 .7 . CONLAN 17 2 .2 . Levels of Hardware Description 17 2 .2 .1 . Circuit Level 18 2 .2 .2 . Logic Gate Level 18 2 .2 .3 . Register Transfer Level 19 2 .2 .3 .1 . Structure Level 19 2 .2 .3 .2 . Functional Level 19 .2 . 2 .3 .3 Behavior Level . .20 2 .2 .4 . Instruction Set Level 20 2 .2 .5 . Processor Memory Switch Level 21 2 .2 .6 . Algorithmic Level 21 2 .3 . Applications of CHDLs 21 2 .3 .1 . Descriptive Tool 22 2 .3 .2 . Simulation and Design Verification 23 2 .3 .3 . Design Automation and Hardware Synthesis 24 3 . Introduction to ASIM II 25 3 .1 . Purpose of ASIM II 25 3 .2 . Description of Components 27 4 .
    [Show full text]
  • 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
    [Show full text]