Programming Languages & Tools

Total Page:16

File Type:pdf, Size:1020Kb

Programming Languages & Tools I PROGRAMMING LANGUAGES & TOOLS Volume 10 Number 1 1998 Editorial The Digital Technicaljoumalis a refereed AlphaServer, Compaq, tl1e Compaq logo, jane C. Blake, Managing Editor journal published quarterly by Compaq DEC, DIGITAL, tl1e DIGITAL logo, 550 ULTIUX, Kathleen M. Stetson, Editor Computer Corporation, King Street, VAX,and VMS are registered 01460-1289. Hden L. Patterson, Editor LKGI-2jW7, Littleton, MA in the U.S. Patent and Trademark Office. Hard-copy subscriptions can be ordered by DIGITAL UNIX, FX132, and OpenVMS Circulation sending a check in U.S. funds (made payable arc trademarks of Compaq Computer Kristine M. Lowe, Administrator to Compaq Computer Corporation) to the Corporation. published-by address. General subscription Production rates arc $40.00 (non-U.S. $60) for four issues Intel and Pentium are registered u·ademarks $75.00 $115) Christa W. Jessica, Production Editor and (non-U.S. for eight issues. of Intel Corporation. University and college professors and Ph.D. Elizabeth McGrail, Typographer I lUX is a registered trademark of Silicon students in the elecu·icaJ engineering and com­ Peter R. Woodbury, Illustrator Graphics, Inc. puter science fields receive complimentary sub­ scriptions upon request. Compaq customers Microsoft, Visual C++, Windows, and Advisory Board may qualify tor giftsubscriptions and arc encour­ Windows NT are registered trademarks Thomas F. Gannon, Chairman (Acting) aged to contact tl1eir sales representatives. of Microsoft Corporation. Scott E. Cutler Donald Z. Harbert Electronic subscriptions are available at MIPS is a registered trademark of MIPS William A. Laing no charge by accessing URL Technologies, Inc. Richard F. Lary http:jjwww.digital.com/subscription. NULLSTONE is a trademark ofNullstonc Alan G. Nemeth This service will send an electronic mail notification when a new issue is available Corporation. Robcrt M. Supnik on the Internet. Roque Wave and .h++ are registered trade­ Single copies and back issues can be ordered marks of Roque Wave Software, Inc. by sending tl1e requested issue's volume and RS/6000 is a registered trademark of number and a check for $16.00 (non-U.S. International Business Machines C01voration. $18) each to tl1e published-by address. Recent issues arc also available on me Internet at Solaris is a registered trademark of Sun http://www.digital.com/ dtj. Microsysrems, Inc. Compaq employees may order subscrip­ SPARC is a registered trademark of SPARC tions through Readers Choice at URL International,Inc. http://web rc.das.dec.com. SPEC and SPECint are registered trademarks Inquiries, address changes, and compli­ of Standard Performance Evaluation mentary subscription orders can be sent Corporation. to the Dlj!,ital Technica/Joumal at tl1e published-by address or tl1e electronic UNIX is a registered trademark in the United mail address, [email protected]. Inquiries States and in other countries, licensed exclu­ can also be made by calling U1e.fournal sively through X/Open Company Ltd. office at 978-506-6858. Other product and company names mentioned Comments on the content of any paper and herein may be trademarks and/or registered requests to contact autl1ors are welcomed trademarks of their respective owners. and may be sent to tl1e managing editor at tl1e published-by or electronic mail address. Copyright© 1998 Compaq Computer Corporation. Copying wimout fee is per­ mitted provided that such copies are made f·or usc in educational institutions by faculty members and are not distributed for com­ mercial advantage. Absu·acting with credit of Compaq Computer Corporation's author­ ship is permitted. The information in tl1e journalis subject to change without notice and should not be construed as a commitment by Compaq Computer Corporation or by the compa­ nies herein represented. Compaq Computer Corporation assumes no responsibility for any errors that may appear in t11e./OII/'I/Cii. ISSN 0898-90IX Documentation Number EC-P9706-I8 Book production was done by Quantic Communications, Inc. Cover Design This special issue of the jounw/ focuses on Programming Languages & Tools, specifi­ cally on compiler software. For the cover, wc have chosen the alchemist who trans­ forms common elements into precious gold to represent the compiler developer who transforms code to extract the highest per­ formance possible for software applications. The cover was designed by Lucinda O'Neill of the Compaq Industria! and Graphic Design Group. December 1998 A letter to readers of the Dip,ital Technicaljournal This issue is the last Digital Technicaljournal to be published. Since 1985, the Journal has been privileged to publish intormation about significantengineeting accomplishments for DIGITAL, including standards-setting network and storage teclmologies, industry-leading VAX.systems, record-breaking Alpha microproces­ sors and semiconductor technologies, and advanced application software and performance tools. The Journal has been rewarded by continual growth in rhe number of readers and by rheir expressions of appreciation for the quality of content a.nd presentation. The editors dunk rhe engineers who somehow made d1e time to write, the engi­ neering managers who supported rhem, rhe consulting engineers and professors who reviewed manuscripts and made rhe process a learning experience for all of us, and, of course, the readers who are the reason the Journal came into existence 13 years ago. With kind regards, Jane Blake Managing Editor Kathleen Stetson Editor Helen Patterson Editor Digital Technical Journal Volume 10 Number 1 Contents Introduction C. Robert Morgan, Guest Editor 2 Foreword William C. Blake 4 Tracing and Characterization of Windows NT-based Jason P. Casmira, David P. Hunter, 6 System Workloads and David R. Kaeli Automatic Template Instantiation in DIGITAL C++ Avrum E. Itzkowitz and Lois D. Foltan 22 Measurement and Analysis of C and C++ Performance Hemant G. Rotithor, Kevin W. Harris, 32 and Mark W. Davis Alias Analysis in the DEC C and DIGITAL C++ Compilers August G. Reinig 48 Compiler Optimization for Superscalar Systems: P hilip H. Sweany, Steven M. Carr, 58 Global Instruction Scheduling without Copies and Brett L. Huber Maximizing Multiprocessor Performance Mary W. Hall, Jennifer M. Anderson, 71 with the SUIF Compiler Saman P. Amarasinghe, Brian R. Murphy, Shih-Wei Liao, Eduoard Bugnion, :md Monica S. Lam Debugging Optimized Code: Concepts and Ronald F. Brender, Jeffrey E. Nelson, 81 Implementation on DIGITAL Alpha Systems and Mark E. Arsenault Differential Testing for Software William M. McKeeman 100 Introduction The complexity of high-performance Profiling describes the point in the systems and d1e need tor ever-increased program that is most frequently performance to be gained from those executed. Tracing describes the systems creates a challenge for engi­ commonly executed sequence of neers, one d1at requires bod1 experience instructions. In addition to helping and innovation in the development developers build more efficient of software tools. The papers in this applications, this information assists issue of tJ1e]ournal are a few selected designers and implementers of future examples of the work performed Windows NT systems. within Compaq and by researchers Every compiler consists of two C. Robert Morgan Senior Consulting Engineer and worldwide to advance me state of me components: the front end, which Technical Program Manage1; art. In fact, Compaq supports rele­ analyzes the specific language, and Core Technology Croup vant research in programming lan­ the back end, which generates opti­ guages and tools. mized instructions for the target Compaq has been developing machine. An efficient compiler is a high-performance tools for more balance of both components. As lan­ than thirty years, starting with the guages such as C++ evolve, the com­ Fortran compiler for the DIGITAL piler front end must also evolve to PDP-10, introduced in 1967. Later keep pace. C++ has now been stan­ compilers and tools for VAX com­ dardized, so evolutionary changes puter systems, introduced in 1977, will Jessen. However, compiler devel­ made the VA.'< system one of me most opers must continue to improve usable in history. The compilers and front-end techniques for implement­ debugger for VAXjVMS are exem­ ing the language to ensure ever better plary. With the introduction of the application performance. An impor­ VfuY.. successor in 1992, the 64-bit tant feature of C++ compiler develop­ RISC Alpha systems, Compaq has ment is C++ templates. Templates continued me traditionof developing may be implemented in multiple advanced tools that accelerate appli­ ways, with varying effects on appli­ cation performance and usability for cation programs. The paper by system users. The papers, however, Itzkowitz and Foltan describes represent not only the work of Compaq's efficient implementation Compaq engineers but aJso that of of templates. On a related subject, researchers and academics who are Rotid1or, Hanis, and Davis describe working on problems and advanced a systematic approach Compaq has techniques of interest to Compaq. developed for monitoring and The paper on cbaractetization of improving C++ compiler perfor­ system workloads by Casmira, Hw1ter, mance to minimize cost and maxi­ and Kaeli addresses the capture of mize function and reliability. basic data needed for me development Improved optimization techniques of tools and high-performance appli­ for compiler back ends are presented cations. The authors' work focuses in three papers. In the firsto f d1ese, on generating
Recommended publications
  • Intel Updates
    Intel Updates Jun Nakajima Intel Open Source Technology Center Xen Summit November 2007 Legal Disclaimer y INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL® PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. INTEL PRODUCTS ARE NOT INTENDED FOR USE IN MEDICAL, LIFE SAVING, OR LIFE SUSTAINING APPLICATIONS. y Intel may make changes to specifications and product descriptions at any time, without notice. y All products, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice. y Intel, processors, chipsets, and desktop boards may contain design defects or errors known as errata, which may cause the product to deviate from published specifications. Current characterized errata are available on request. y Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. y *Other names and brands may be claimed as the property of others. y Copyright © 2007 Intel Corporation. Throughout this presentation: VT-x refers to Intel®
    [Show full text]
  • Emerging Technologies Multi/Parallel Processing
    Emerging Technologies Multi/Parallel Processing Mary C. Kulas New Computing Structures Strategic Relations Group December 1987 For Internal Use Only Copyright @ 1987 by Digital Equipment Corporation. Printed in U.S.A. The information contained herein is confidential and proprietary. It is the property of Digital Equipment Corporation and shall not be reproduced or' copied in whole or in part without written permission. This is an unpublished work protected under the Federal copyright laws. The following are trademarks of Digital Equipment Corporation, Maynard, MA 01754. DECpage LN03 This report was produced by Educational Services with DECpage and the LN03 laser printer. Contents Acknowledgments. 1 Abstract. .. 3 Executive Summary. .. 5 I. Analysis . .. 7 A. The Players . .. 9 1. Number and Status . .. 9 2. Funding. .. 10 3. Strategic Alliances. .. 11 4. Sales. .. 13 a. Revenue/Units Installed . .. 13 h. European Sales. .. 14 B. The Product. .. 15 1. CPUs. .. 15 2. Chip . .. 15 3. Bus. .. 15 4. Vector Processing . .. 16 5. Operating System . .. 16 6. Languages. .. 17 7. Third-Party Applications . .. 18 8. Pricing. .. 18 C. ~BM and Other Major Computer Companies. .. 19 D. Why Success? Why Failure? . .. 21 E. Future Directions. .. 25 II. Company/Product Profiles. .. 27 A. Multi/Parallel Processors . .. 29 1. Alliant . .. 31 2. Astronautics. .. 35 3. Concurrent . .. 37 4. Cydrome. .. 41 5. Eastman Kodak. .. 45 6. Elxsi . .. 47 Contents iii 7. Encore ............... 51 8. Flexible . ... 55 9. Floating Point Systems - M64line ................... 59 10. International Parallel ........................... 61 11. Loral .................................... 63 12. Masscomp ................................. 65 13. Meiko .................................... 67 14. Multiflow. ~ ................................ 69 15. Sequent................................... 71 B. Massively Parallel . 75 1. Ametek.................................... 77 2. Bolt Beranek & Newman Advanced Computers ...........
    [Show full text]
  • EXPLOITING BLUEBORNE in LINUX- BASED IOT DEVICES Ben Seri & Alon Livne
    EXPLOITING BLUEBORNE IN LINUX- BASED IOT DEVICES Ben Seri & Alon Livne EXPLOITING BLUEBORNE IN LINUX-BASED IOT DEVICES – © 2019 ARMIS, INC. Preface 3 Brief Bluetooth Background 4 L2CAP 4 Overview 4 Mutual configuration 5 Linux kernel RCE vulnerability - CVE-2017-1000251 6 Impact 8 Exploitation 9 Case Study #1 - Samsung Gear S3 9 Extracting the smartwatch kernel 9 Leveraging stack overflow into PC control 10 From Kernel to User-Mode 13 Aarch64 Return-Oriented-Programming 13 Structural considerations 14 SMACK 19 Case Study #2 - Amazon Echo 22 Getting out of bounds 23 Analyzing the stack 23 Developing Write-What-Where 26 Putting it all together 28 Case Study #n - Defeating modern mitigations 29 A new information leak vulnerability in the kernel - CVE-2017-1000410 29 Conclusions 31 BLUEBORNE ON LINUX — ©​ 2019 ARMIS, INC. — 2 ​ ​ Preface In September 2017 the BlueBorne attack vector was disclosed by Armis Labs. BlueBorne allows attackers to leverage Bluetooth connections to penetrate and take complete control over targeted devices. Armis Labs has identified 8 vulnerabilities related to this attack vector, affecting four operating systems, including Windows, iOS, Linux, and Android. Previous white papers on BlueBorne were published as well: ● The dangers of Bluetooth implementations detailed the overall research, the attack ​ surface, and the discovered vulnerabilities. ● BlueBorne on Android detailed the exploitation process of the BlueBorne vulnerabilities ​ on Android. This white paper will elaborate upon the Linux RCE vulnerability (CVE-2017-1000251) and its ​ ​ exploitation. The exploitation of this vulnerability will be presented on two IoT devices - a Samsung Gear S3 Smartwatch, and the Amazon Echo digital assistant.
    [Show full text]
  • The Risks Digest Index to Volume 11
    The Risks Digest Index to Volume 11 Search RISKS using swish-e Forum on Risks to the Public in Computers and Related Systems ACM Committee on Computers and Public Policy, Peter G. Neumann, moderator Index to Volume 11 Sunday, 30 June 1991 Issue 01 (4 February 1991) Re: Enterprising Vending Machines (Allan Meers) Re: Risks of automatic flight (Henry Spencer) Re: Voting by Phone & public-key cryptography (Evan Ravitz) Re: Random Voting IDs and Bogus Votes (Vote by Phone) (Mike Beede)) Re: Patriots ... (Steve Mitchell, Steven Philipson, Michael H. Riddle, Clifford Johnson) Re: Man-in-the-loop on SDI (Henry Spencer) Re: Broadcast local area networks ... (Curt Sampson, Donald Lindsay, John Stanley, Jerry Leichter) Issue 02 (5 February 1991) Bogus draft notices are computer generated (Jonathan Rice) People working at home on important tasks (Mike Albaugh) Predicting system reliability (Martyn Thomas) Re: Patriots (Steven Markus Woodcock, Mark Levison) Hungry copiers (another run-in with technology) (Scott Wilson) Re: Enterprising Vending Machines (Dave Curry) Broadcast LANs (Peter da Silva, Scott Hinckley) Issue 03 (6 February 1991) Tube Tragedy (Pete Mellor) New Zealand Computer Error Holds Up Funds (Gligor Tashkovich) "Inquiry into cash machine fraud" (Stella Page) Quick n' easy access to Fidelity account info (Carol Springs) Re: Enterprising Vending Machines (Mark Jackson) RISKS of no escape paths (Geoff Kuenning) A risky gas pump (Bob Grumbine) Electronic traffic signs endanger motorists... (Rich Snider) Re: Predicting system reliability (Richard P. Taylor) The new California licenses (Chris Hibbert) Phone Voting -- Really a Problem? (Michael Barnett, Dave Smith) Re: Electronic cash completely replacing cash (Barry Wright) Issue 04 (7 February 1991) Subway door accidents (Mark Brader) http://catless.ncl.ac.uk/Risks/index.11.html[2011-06-11 08:17:52] The Risks Digest Index to Volume 11 "Virus" destroys part of Mass.
    [Show full text]
  • Dartmouth Computer Science Technical Report TR2011-680 (Draft Version) Exploiting the Hard-Working DWARF: Trojans with No Native Executable Code
    Dartmouth Computer Science Technical Report TR2011-680 (Draft version) Exploiting the Hard-Working DWARF: Trojans with no Native Executable Code James Oakley and Sergey Bratus Computer Science Dept. Dartmouth College Hanover, New Hampshire [email protected] April 11, 2011 Abstract All binaries compiled by recent versions of GCC from C++ programs include complex data and dedicated code for exception handling support. The data structures describe the call stack frame layout in the DWARF format byte- code. The dedicated code includes an interpreter of this bytecode and logic to implement the call stack unwinding. Despite being present in a large class of programs { and therefore poten- tially providing a huge attack surface { this mechanism is not widely known or studied. Of particular interest to us is that the exception handling mech- anism provides the means for fundamentally altering the flow of a program. DWARF is designed specifically for calculating call frame addresses and reg- ister values. DWARF expressions are Turing-complete and may calculate register values based on any readable data in the address space of the pro- cess. The exception handling data is in effect an embedded program residing within every C++ process. This paper explores what can be accomplished with control of the debugging information without modifying the program's text or data. We also examine the exception handling mechanism and argue that it is rife for vulnerability finding, not least because the error states of a program are often those least well tested. We demonstrate the capabilities of this DWARF virtual machine and its suitableness for building a new type of backdoor as well as other implications it has on security.
    [Show full text]
  • Portable Executable File Format
    Chapter 11 Portable Executable File Format IN THIS CHAPTER + Understanding the structure of a PE file + Talking in terms of RVAs + Detailing the PE format + The importance of indices in the data directory + How the loader interprets a PE file MICROSOFT INTRODUCED A NEW executable file format with Windows NT. This for- mat is called the Portable Executable (PE) format because it is supposed to be portable across all 32-bit operating systems by Microsoft. The same PE format exe- cutable can be executed on any version of Windows NT, Windows 95, and Win32s. Also, the same format is used for executables for Windows NT running on proces- sors other than Intel x86, such as MIPS, Alpha, and Power PC. The 32-bit DLLs and Windows NT device drivers also follow the same PE format. It is helpful to understand the PE file format because PE files are almost identi- cal on disk and in RAM. Learning about the PE format is also helpful for under- standing many operating system concepts. For example, how operating system loader works to support dynamic linking of DLL functions, the data structures in- volved in dynamic linking such as import table, export table, and so on. The PE format is not really undocumented. The WINNT.H file has several struc- ture definitions representing the PE format. The Microsoft Developer's Network (MSDN) CD-ROMs contain several descriptions of the PE format. However, these descriptions are in bits and pieces, and are by no means complete. In this chapter, we try to give you a comprehensive picture of the PE format.
    [Show full text]
  • Process Address Spaces and Binary Formats
    Process Address Spaces and Binary Formats Don Porter – CSE 506 Housekeeping ò Lab deadline extended to Wed night (9/14) ò Enrollment finalized – if you still want in, email me ò All students should have VMs at this point ò Email Don if you don’t have one ò TA office hours posted ò Private git repositories should be setup soon Review ò We’ve seen how paging and segmentation work on x86 ò Maps logical addresses to physical pages ò These are the low-level hardware tools ò This lecture: build up to higher-level abstractions ò Namely, the process address space Definitions (can vary) ò Process is a virtual address space ò 1+ threads of execution work within this address space ò A process is composed of: ò Memory-mapped files ò Includes program binary ò Anonymous pages: no file backing ò When the process exits, their contents go away Problem 1: How to represent? ò What is the best way to represent the components of a process? ò Common question: is mapped at address x? ò Page faults, new memory mappings, etc. ò Hint: a 64-bit address space is seriously huge ò Hint: some programs (like databases) map tons of data ò Others map very little ò No one size fits all Sparse representation ò Naïve approach might would be to represent each page ò Mark empty space as unused ò But this wastes OS memory ò Better idea: only allocate nodes in a data structure for memory that is mapped to something ò Kernel data structure memory use proportional to complexity of address space! Linux: vm_area_struct ò Linux represents portions of a process with a vm_area_struct,
    [Show full text]
  • Master's Project at ICT, KTH Examensarbete Vid ICT, KTH
    Master's Project at ICT, KTH Examensarbete vid ICT, KTH Automated source-to-source translation from Java to C++ Automatisk källkodsöversättning från Java till C++ JACEK SIEKA [email protected] Master's Thesis in Software Engineering Examensarbete inom programvaruteknik Supervisor and examiner: Thomas Sjöland Handledare och examinator: Thomas Sjöland Abstract Reuse of Java libraries and interoperability with platform native components has traditionally been limited to the application programming interface offered by the reference implementation of Java, the Java Native Interface. In this thesis the feasibility of another approach, automated source-to-source translation from Java to C++, is examined starting with a survey of the current research. Using the Java Language Specification as guide, translations for the constructs of the Java language are proposed, focusing on and taking advantage of the syntactic and semantic similarities between the two languages. Based on these translations, a tool for automatically translating Java source code to C++ has been developed and is presented in the text. Experimentation shows that a simple application and the core Java libraries it depends on can automatically be translated, producing equal output when built and run. The resulting source code is readable and maintainable, and therefore suitable as a starting point for further development in C++. With the fully automated process described, source-to-source translation becomes a viable alternative when facing a need for functionality already implemented in a Java library or application, saving considerable resources that would otherwise have to be spent rewriting the code manually. Sammanfattning Återanvändning av Java-bibliotek och interoperabilitet med plattformspecifika komponenter har traditionellt varit begränsat till det programmeringsgränssnitt som erbjuds av referensimplementationen av Java, Java Native Interface.
    [Show full text]
  • VSI Openvms Version 8.4-1H1 Installation and Upgrade Manual
    VSI OpenVMS Version 8.4-1H1 Installation and Upgrade Manual VSI OpenVMS Version 8.4-1H1 Installation and Upgrade Manual: Software Version: VSI OpenVMS Version 8.4-1H1 for HP Integrity Servers Publication date 5-May-2015 - Release Version 1.0 Copyright © 2015 VMS Software, Inc., (VSI), Bolton Massachusetts, USA Legal Notice Confidential computer software. Valid license from VSI required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice. The only warranties for VSI products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. VSI shall not be liable for technical or editorial errors or omissions contained herein. HP, HP Integrity, HP Alpha, Proliant and Superdome are trademarks or registered trademarks of Hewlett Packard Development Company, L.P. Intel, Itanium and IA64 are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Java, the coffee cup logo, and all Java based marks are trademarks or registered trademarks of Oracle Corporation in the United States or other countries. Kerberos is a trademark of the Massachusetts Institute of Technology. Microsoft, Windows, Windows-NT and Microsoft XP are U.S. registered trademarks of Microsoft Corporation. Microsoft Vista is either a registered trademark or trademark of Microsoft Corporation in the United States and/or other countries.
    [Show full text]
  • State of the Art :: Desktop Wallpapers
    State of the Art :: Desktop Wallpapers William Jon McCann 2008-05-29 About this Series About this Article Each article in this series will observe an aspect of design In this article we will observe the desktop wallpapers in contemporary graphical operating system products. (backgrounds) that are included by default in a selection of The intention is for these observations to serve as a well known products. baseline for discussion and facilitate consideration of the relationships between products. It is specifically not the aim of this series to provide analysis or make recommendations for action directly. Microsoft® Windows Windows ® XP – October 2001 Wallpapers Ascent Autumn Azul Bliss Crystal Follow Friend Home Moon Flower Power Purple Flower Radiance Red moon desert Ripple Stonehenge Tulips Vortec Space Wind Windows XP Notes: Location C:\WINDOWS\Web\Wallpaper Format JPEG, BMP Dimensions 800 × 600 License Proprietary Sources and Methods ● http://www.vanityfair.com/ontheweb/features/2007/02/autumn200702?printable=true&currentPage=all ● http://en.wikipedia.org/wiki/Bliss_(image) Windows Vista ® – January 2007 Windows Wallpapers Black and White img1 img2 img3 img4 ©Peter deLory ©Nicholas Veasey ©Jean-Francois Gate ©Alan Kearney The Image Bank Photographer's Choice Stone Taxi Getty Images Getty Images Getty Images Getty Images Light Auras img25 img26 img27 img28 img29 ©Microsoft 2006 ©Microsoft 2006 ©Microsoft 2006 ©Microsoft 2006 ©Microsoft 2006 Paintings img12 img13 img14 img15 ©Corbis ©Corbis ©Corbis ©Corbis Textures img8 img9 img5 img6 img7 ©Microsoft 2006 ©Chuck Kuhn Photography ©Microsoft Corp ©Microsoft Corp ©Darrell Gulin/Corbis The Image Bank Getty Images img10 img11 ©Rosemary Calvert ©Dana Menussi Stone Stone+ Getty Images Getty Images Vistas i i mg16 mg17 img18 img19 img20 ©Walter Bibikow ©Dr.
    [Show full text]
  • Concept Programming in XL the Art of Turning Ideas Into Programs
    Concept Programming in XL The Art of Turning Ideas into Programs TM Concept Programming 1 2 Concept Programming Chapter 1— Introduction . 13 1.1. Why another language? . 14 1.2. Who should read this book?. 16 1.3. A quick tour of XL . 16 1.4. Contents Overview. 17 Chapter 2— Simple Examples . 19 2.1. Hello World . 20 2.2. Factorial Function . 21 2.3. Computing a Maximum . 24 2.4. Symbolic Differentiation . 26 Part I — Concept Programming . 31 Chapter 3— Concepts? . 33 3.1. Programming Philosophy. 34 3.2. Translating concepts. 37 3.3. Pseudo-Metrics. 45 3.4. Concept Mismatch . 48 3.5. In Conclusion . 51 Chapter 4— The Trouble with Programming . 53 4.1. Scale Complexity and Moore s Law . 54 4.2. Domain Complexity . 57 4.3. Artificial complexity . 58 4.4. Business Complexity . 64 4.5. The Grim State of Software Quality . 68 Chapter 5— From Concepts to Code . 71 5.1. Turning Ideas into Code. 72 Concept Programming 3 5.2. Abstractions . 77 5.3. Abstractions in Programs . 84 Part II —Core Language . .93 Chapter 6— Compiling XL . 95 6.1. Representing Programs . 96 6.2. Understanding Programs . 98 6.3. Compiling XL . 102 Chapter 7— Syntax . 105 7.1. Source Text. 106 7.2. Tokens . 107 7.3. Parse Tree . 112 7.4. Practical Considerations. 121 7.5. Beyond the Syntax . 126 Chapter 8— Declarations . 127 8.1. Variables. 128 8.2. Subroutines. 134 8.3. Types . 143 8.4. Constants . 143 Chapter 9— Control Flow . 145 9.1. Tests . 145 9.2.
    [Show full text]
  • The Opengl ES Shading Language
    The OpenGL ES® Shading Language Language Version: 3.00 Document Revision: 6 29 January 2016 Editor: Robert J. Simpson, Qualcomm OpenGL GLSL editor: John Kessenich, LunarG GLSL version 1.1 Authors: John Kessenich, Dave Baldwin, Randi Rost Copyright © 2008-2016 The Khronos Group Inc. All Rights Reserved. This specification is protected by copyright laws and contains material proprietary to the Khronos Group, Inc. It or any components may not be reproduced, republished, distributed, transmitted, displayed, broadcast, or otherwise exploited in any manner without the express prior written permission of Khronos Group. You may use this specification for implementing the functionality therein, without altering or removing any trademark, copyright or other notice from the specification, but the receipt or possession of this specification does not convey any rights to reproduce, disclose, or distribute its contents, or to manufacture, use, or sell anything that it may describe, in whole or in part. Khronos Group grants express permission to any current Promoter, Contributor or Adopter member of Khronos to copy and redistribute UNMODIFIED versions of this specification in any fashion, provided that NO CHARGE is made for the specification and the latest available update of the specification for any version of the API is used whenever possible. Such distributed specification may be reformatted AS LONG AS the contents of the specification are not changed in any way. The specification may be incorporated into a product that is sold as long as such product includes significant independent work developed by the seller. A link to the current version of this specification on the Khronos Group website should be included whenever possible with specification distributions.
    [Show full text]