BASIC-PLUS-2 Reference Manual

Total Page:16

File Type:pdf, Size:1020Kb

BASIC-PLUS-2 Reference Manual BASIC-PLUS-2 Reference Manual Order Number : AA-JP30B-TK May 1991 This manual provides reference information and examples on all BASIC-PLUS-2 commands, directives, statements, and functions . Revision/Update Information : This manual is a revision. Operating System and Version : RSX-11M Version 4 .6 or higher RSX-IIM-PLUS Version 4.3 or higher Micro/RSX Version 4 .3 or higher RSTS/E Version 9.7 or higher Software Version : BASIC-PLUS-2 Version 2.7 Digital Equipment Corporation Maynard, Massachusetts The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation . Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document . The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software on equipment that is not supplied by Digital Equipment Corporation or its affiliated companies . Restricted Rights : Use, duplication, or disclosure by the U .S. Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252 .227-7013 . © Digital Equipment Corporation 1987,1991 . All Rights Reserved. Printed in U .S.A. The postpaid Reader's Comments forms at the end of this document request your critical evaluation to assist in preparing future documentation. The following are trademarks of Digital Equipment Corporation : BASIC-PLUS, BASIC-PLUS-2, DEC, DECnet, DECUS, Digital, Micro'RSX, PDP, PDP-11, RMS, RMS-11, RSTS, RSTS/E, RSX, RSX-11M, RSX-11M-PLUS, RX50, TK50, UNIBUS, VAX, VAXcluster, VAXinfo, VMS, and the Digital logo . BASIC is a trademark of Dartmouth College . This document was prepared using VAX DOCUMENT, Version 2 .0. Contents Preface XUI Summary of Technical Changes xvii 1 Program Elements and Structure 1 .1 Components of Program Lines 1-1 1 .1 .1 Line Numbers 1-2 1 .1 .2 Labels 1-2 1 .1 .3 Statements 1-3 1 .1 .3.1 Keywords 1-4 1 .1 .3.2 Single-Statement Lines and Continued Statements 1-5 1 .1 .3.3 Multi-Statement Lines 1 -6 1 .1 .4 Compiler Directives 1-8 1 .1 .5 Comments 1-8 1 .1 .5 .1 Comment Field 1 -9 1 .1 .5.2 REM Statements 1-10 1 .1 .6 Line Terminators 1-11 1 .1 .7 Lexical Order 1-11 1 .2 BASIC-PLUS-2 Character Set 1-11 1 .3 BASIC-PLUS-2 Data Types 1-12 1 .3.1 Implicit Data Typing 1-15 1 .3.2 Explicit Data Typing 1-16 1 .4 Variables 1-16 1 .4.1 Variable Names 1-17 1 .4.2 Implicitly Declared Variables 1-18 1 .4.3 Explicitly Declared Variables 1-19 1 .4.4 Subscripted Variables and Arrays 1-19 1 .4.5 Initialization of Variables 1-21 1 .5 Constants 1-22 III 1 .5.1 Numeric Constants 1-23 1 .5.1 .1 Floating-Point Constants 1-23 1 .5.1 .2 Integer Constants 1-24 1 .5 .2 String Constants 1-25 1 .5 .3 Named Constants 1-27 1 .5 .3.1 Naming Constants Within a Program Unit 1-27 1 .5 .3.2 Naming Constants External to a Program Unit 1-28 1 .5.4 Explicit Literal Notation 1-29 1 .5.5 Predefined Constants 1-32 1 .6 Expressions 1-34 1 .6.1 Numeric Expressions 1-34 1 .6.2 String Expressions 1-37 1 .6.3 Conditional Expressions 1-37 1 .6.3.1 Numeric Relational Expressions 1-37 1 .6.3.2 String Relational Expressions 1-39 1 .6.3.3 Logical Expressions 1-41 1 .6.4 Evaluating Expressions 1-45 2 Environment Commands $ system-command 2-2 APPEND 2-4 BRLRES 2-6 BUILD 2-8 COMPILE 2-14 DELETE 2-21 DSKLIB 2-23 EDIT 2-25 EXIT 2-28 EXTRACT 2-29 HELP 2-30 IDENTIFY 2-32 INQUIRE 2-33 LIBRARY 2-34 LIST and LISTNH 2-36 LOAD 2-38 LOCK 2-40 NEW 2-41 ODLRMS 2-43 OLD 2-45 iv RENAME 2-47 REPLACE 2-49 RMSRES 2-50 RUN 2-52 SAVE 2-58 SCALE 2-59 SCRATCH 2-61 SEQUENCE 2-62 SET 2-64 SHOW 2-72 UNSAVE 2-73 3 Compiler Directives %ABORT 3-2 %CROSS 3-3 %IDENT 3-4 %IF-%THEN-%ELSE-%END %IF 3-6 %INCLUDE 3-8 %LET 3-10 %LIST 3-11 %NOCROSS 3-12 %NOLIST 3-13 %PAGE 3-14 %PRINT 3-15 %SBTTL 3-16 %TITLE 3-18 %VARIANT 3-20 4 Statements and Functions ABS 4-2 ABS% 4-3 ASCII 4-4 ATN 4-5 BUFSIZ 4-6 CALL 4-7 CAUSE ERROR 4-12 V CCPOS 4-13 CHAIN 4-14 CHANGE 4-16 CHR$ 4-18 CLOSE 4-19 COMMON 4-20 COMP% 4-25 COS 4-26 CTRLC 4-27 CVT$$ 4-29 CVTxx 4-30 DATA 4-33 DATE$ 4-35 DECLARE 4-37 DEF 4-41 DEF* 4-46 DELETE 4-51 DET 4-53 DIF$ 4-55 DIMENSION 4-56 ECHO 4-61 EDIT$ 4-62 END 4-64 ERL 4-67 ERN$ 4-68 ERR 4-69 ERT$ 4-70 EXIT 4-71 EXP 4-73 EXTERNAL 4-74 FIELD 4-78 FIND 4-80 FIX 4-84 FNEND 4-85 FNEXIT 4-86 FOR 4-87 FORMAT$ 4-91 vi FSP$ 4-92 FSS$ 4-94 FUNCTION 4-95 FUNCTIONEND 4-97 FUNCTIONEXIT 4-98 GET 4-99 GETRFA 4-103 GOSUB 4-104 GOTO 4-105 IF 4-106 INPUT 4-109 INPUT LINE 4-112 INSTR 4-115 INT 4-117 INTEGER 4-118 ITERATE 4-119 KILL 4-120 LEFT$ 4-121 LEN 4-122 LET 4-123 LINPUT 4-125 LOG 4-128 LOG10 4-129 LSET 4-130 MAG 4-131 MAGTAPE 4-132 MAP 4-134 MAP DYNAMIC 4-137 MAT 4-140 MAT INPUT 4-144 MAT LINPUT 4-146 MAT PRINT 4-148 MAT READ 4-150 MAX 4-152 MID$ 4-153 MIN 4-154 MOD 4-155 vii MOVE 4-156 NAME . AS 4-159 NEXT 4-161 NOECHO 4-162 NUM 4-163 NUM2 4-164 NUM$ 4-165 NUM1$ 4-167 ON ERROR GO BACK 4-169 ON ERROR GOTO 4-171 ON ERROR GOTO 0 4-173 ON . GOSUB 4-174 ON . GOTO 4-176 ONECHR 4-177 OPEN 4-178 OPTION 4-191 PLACE$ 4-194 POS 4-197 PRINT 4-199 PRINT USING 4-203 PROD$ 4-209 PROGRAM 4-211 PUT 4-212 QUO$ 4-216 RAD$ 4-218 RANDOMIZE 4-219 RCTRLC 4-220 RCTRLO 4-221 READ 4-222 REAL 4-224 RECOUNT 4-225 REM 4-227 REMAP 4-229 RESET 4-233 RESTORE 4-234 RESUME 4-236 RETURN 4-238 RIGHT$ 4-239 RND 4-240 RSET 4-241 SCRATCH 4-242 SEG$ 4-243 SELECT 4-245 SET [NO] PROMPT 4-248 SGN 4-250 SIN 4-251 SLEEP 4-252 SPACE$ 4-253 SQR 4-254 STATUS 4-255 STOP 4-258 STR$ 4-260 STRING$ 4-261 SUB 4-262 SUBEND 4-265 SUBEXIT 4-266 SUM$ 4-267 SWAP% 4-269 SYS 4-270 TAB 4-271 TAN 4-272 TIME 4-273 TIME$ 4-275 TRM$ 4-276 UNLESS 4-277 UNLOCK 4-278 UNTIL 4-279 UPDATE 4-281 VAL 4-283 VAL% 4-284 WAIT 4-285 WHILE 4-286 XLATE$ 4-288 ix A BASIC-PLUS-2 Keywords A.1 BASIC-PLUS-2 Reserved and Unreserved Keywords A-1 A .2 Reserved Keywords In VAX BASIC A-9 B Debugger Commands BREAK B-2 CONTINUE B-4 CORE B-5 ERL B-6 ERN B-7 ERR B-8 EXIT B-9 FREE B-10 I/O BUFFER B-11 LET B-12 PRINT B-14 RECOUNT B-15 REDIRECT B-16 STATUS B-17 STEP B-19 STRING B-20 TRACE B-21 UNBREAK B-22 UNTRACE B-24 C Editing Mode Commands DEFINE C-2 EXECUTE C-3 EXIT C-4 FIND C-5 INSERT C-6 SUBSTITUTE C-8 x D Object Time System Routines Index Figures 1-1 Subscripted Variables 1-21 1-2 Truth Tables 1-43 Tables 1 -1 Keyword Space Requirements 1-4 1 -2 BASIC-PLUS-2 Data Types 1-14 1-3 Numbers in E Notation 1-24 1-4 Predefined Constants 1-32 1-5 Arithmetic Operators 1-35 1-6 Result Data Types in BASIC-PLUS-2 Expressions 1-36 1-7 Numeric Relational Operators 1-38 1-8 String Relational Operators 1-40 1-9 Logical Operators 1-42 1-10 Numeric Operator Precedence 1-46 2-1 Overlay Description Files 2-44 2-2 RMS-11 Libraries 2-51 4-1 BASIC-PLUS-2 Parameter-Passing Mechanisms 4-8 4-2 FILL Item Formats and Storage Allocations 4-22 4-3 EDIT$ Values 4-62 4-4 FSP$ Return Values and Corresponding RMS Fields 4-92 4-5 MAGTAPE Function Codes 4-132 4-6 Rounding and Truncation of 123456.654321 4-195 4-7 RSX STATUS Values 4-256 4-8 TIME Function Values 4-273 D-1 Control, Matrix, and Miscellaneous Modules D-1 D-2 Array Threads D-2 D-3 String Modules D-3 D-4 Common Math Modules D-4 D-5 FPU Math Modules D-6 D-6 Common I/O Modules D-7 xi D-7 RMS I/O Modules D-8 D-8 RSTS/E-Specific Modules D-9 D-9 RSX-Specific Modules D-11 xii Preface Intended Audience This manual provides detailed reference information on all BASIC-PLUS-2 commands, directives, statements, and functions .
Recommended publications
  • Introduction to Programming in Fortran 77 for Students of Science and Engineering
    Introduction to programming in Fortran 77 for students of Science and Engineering Roman GrÄoger University of Pennsylvania, Department of Materials Science and Engineering 3231 Walnut Street, O±ce #215, Philadelphia, PA 19104 Revision 1.2 (September 27, 2004) 1 Introduction Fortran (FORmula TRANslation) is a programming language designed speci¯cally for scientists and engineers. For the past 30 years Fortran has been used for such projects as the design of bridges and aeroplane structures, it is used for factory automation control, for storm drainage design, analysis of scienti¯c data and so on. Throughout the life of this language, groups of users have written libraries of useful standard Fortran programs. These programs can be borrowed and used by other people who wish to take advantage of the expertise and experience of the authors, in a similar way in which a book is borrowed from a library. Fortran belongs to a class of higher-level programming languages in which the programs are not written directly in the machine code but instead in an arti¯cal, human-readable language. This source code consists of algorithms built using a set of standard constructions, each consisting of a series of commands which de¯ne the elementary operations with your data. In other words, any algorithm is a cookbook which speci¯es input ingredients, operations with them and with other data and ¯nally returns one or more results, depending on the function of this algorithm. Any source code has to be compiled in order to obtain an executable code which can be run on your computer.
    [Show full text]
  • A Beginner's Guide to Freebasic
    A Beginner’s Guide to FreeBasic Richard D. Clark Ebben Feagan A Clark Productions / HMCsoft Book Copyright (c) Ebben Feagan and Richard Clark. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". The source code was compiled under version .17b of the FreeBasic compiler and tested under Windows 2000 Professional and Ubuntu Linux 6.06. Later compiler versions may require changes to the source code to compile successfully and results may differ under different operating systems. All source code is released under version 2 of the Gnu Public License (http://www.gnu.org/copyleft/gpl.html). The source code is provided AS IS, WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Microsoft Windows®, Visual Basic® and QuickBasic® are registered trademarks and are copyright © Microsoft Corporation. Ubuntu is a registered trademark of Canonical Limited. 2 To all the members of the FreeBasic community, especially the developers. 3 Acknowledgments Writing a book is difficult business, especially a book on programming. It is impossible to know how to do everything in a particular language, and everyone learns something from the programming community. I have learned a multitude of things from the FreeBasic community and I want to send my thanks to all of those who have taken the time to post answers and examples to questions.
    [Show full text]
  • AN125: Integrating Raisonance 8051 Tools Into The
    AN125 INTEGRATING RAISONANCE 8051 TOOLS INTO THE SILICON LABS IDE 1. Introduction 4. Configure the Tool Chain This application note describes how to integrate the Integration Dialog Raisonance 8051 Tools into the Silicon Laboratories Under the 'Project' menu, select 'Tool Chain Integration’ IDE (Integrated Development Environment). Integration to bring up the dialog box shown below. Raisonance provides an efficient development environment with (Ride 7) is the default. To use Raisonance (Ride 6), you compose, edit, build, download and debug operations can select it from the 'Preset Name' drop down box integrated in the same program. under 'Tools Definition Presets'. Next, define the Raisonance assembler, compiler, and linker as shown in 2. Key Points the following sections. The Intel OMF-51 absolute object file generated by the Raisonance 8051 tools enables source-level debug from the Silicon Labs IDE. Once Raisonance Tools are integrated into the IDE they are called by simply pressing the ‘Assemble/ Compile Current File’ button or the ‘Build/Make Project’ button. See the “..\Silabs\MCU\Examples” directory for examples that can be used with the Raisonance tools. Information in this application note applies to Version 4.00 and later of the Silicon Labs IDE and Ride7 and later of the Raisonance 8051 tools. 4.1. Assembler Definition 1. Under the ‘Assembler’ tab, if the assembler 3. Create a Project in the Silicon executable is not already defined, click the browse Labs IDE button next to the ‘Executable:’ text box, and locate the assembler executable. The default location for A project is necessary in order to link assembly files the Raisonance assembler is: created by the compiler and build an absolute ‘OMF-51’ C:\Program Files\Raisonance\Ride7\bin\ma51.exe output file.
    [Show full text]
  • 4 Using HLA with the HIDE Integrated Development Environment
    HLA Reference Manual 5/24/10 Chapter 4 4 Using HLA with the HIDE Integrated Development Environment This chapter describes two IDEs (Integrated Development Environments) for HLA: HIDE and RadASM. 4.1 The HLA Integrated Development Environment (HIDE) Sevag has written a nice HLA-specified integrated development environment for HLA called HIDE (HLA IDE). This one is a bit easier to install, set up, and use than RadASM (at the cost of being a little less flexible). HIDE is great for beginners who want to get up and running with a minimal amount of fuss. You can find HIDE at the HIDE home page: http://sites.google.com/site/highlevelassembly/downloads/hide Contact: [email protected] Note: the following documentation was provided by Sevag. Thanks Sevag! 4.1.1 Description HIDE is an integrated development environment for use with Randall Hyde's HLA (High Level Assembler). The HIDE package contains various 3rd party programs and tools to provide for a complete environment that requires no files external to the package. Designed for a system- friendly interface, HIDE makes no changes to your system registry and requires no global environment variables to function. The only exception is ResEd (a 3rd party Resource Editor written by Ketil.O) which saves its window position into the registry. 4.1.2 Operation HIDE is an integrated development environment for use with Randall Hyde's HLA (High Level Assembler). The HIDE package contains various 3rd party programs and tools to provide for a complete environment that requires no files external to the package. Designed for a system- friendly interface, HIDE makes no changes to your system registry and requires no global environment variables to function.
    [Show full text]
  • TSO/E Programming Guide
    z/OS Version 2 Release 3 TSO/E Programming Guide IBM SA32-0981-30 Note Before using this information and the product it supports, read the information in “Notices” on page 137. This edition applies to Version 2 Release 3 of z/OS (5650-ZOS) and to all subsequent releases and modifications until otherwise indicated in new editions. Last updated: 2019-02-16 © Copyright International Business Machines Corporation 1988, 2017. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents List of Figures....................................................................................................... ix List of Tables........................................................................................................ xi About this document...........................................................................................xiii Who should use this document.................................................................................................................xiii How this document is organized............................................................................................................... xiii How to use this document.........................................................................................................................xiii Where to find more information................................................................................................................ xiii How to send your comments to IBM......................................................................xv
    [Show full text]
  • A Peek Under the IDE Hood Overview
    Intro to Arduino A Peek Under the IDE Hood Overview Grades: 5-7 Time: 5-15 minutes Subject: Computer Science, Electronics This PDQ provides a quick and easy peek at some sample Arduino Code. Have no fear – it’s simple and clear! Background Arduino is both an Open Source hardware AND software platform that enables creators, inventors, students and just about anyone to learn basic electronics and coding to make projects. The FREE software for programming your Arduino hardware is called Arduino IDE. IDE stands for Integrated Development Environment. The IDE is available for computers running Windows, MacOS, and LINUX. Let’s take a look! Objectives • Understand & Recognize: • “Arduino” as a hardware and software platform for making projects. • “Open Source” as a model of creating and sharing information. • “input” and “output” in both hardware and software based on looking at Arduino projects. • “Community” in the sense of people connected through a common interest such as making cool projects with Arduino. • “Computer programming” or “coding” means writing instructions for the hardware to follow. What You'll Need The activities in this module only require you to have some kind of Internet connected device and a browser! Chromebook, smart phone, supercomputer – whatever you have on hand to search the Internet is all you need! Important Terms Open Source: A model of sharing inventions and information for others to use, improve and share again. Hardware: The”physical” part of a computer or device. If you can thump it on a table, it’s probably hardware. Software: The computer program or “instructions you write” for the hardware.
    [Show full text]
  • AN-8207 — Fairchild's Motor Control Development System (MCDS
    www.fairchildsemi.com AN-8207 Fairchild’s Motor Control Development System (MCDS) Integrated Development Environment (IDE) Summary Features The MCDS IDE has following features: The Motor Control Development System (MCDS) is a collection of software and hardware components . Project Management constructed and developed by Fairchild Semiconductor to . Registers Setting facilitate the development of motor control applications. It . Code Generator includes the MCDS Integrated Development Environment (IDE), MCDS Programming Kit, Advanced Motor Control . Editor (AMC) libraries, evaluation board, and motor. Compiler Interface The purpose of this user guide is to describe how to use the . Programming MCDS IDE to develop the firmware of motor applications. Debug Mode Please visit Fairchild’s web for more information: . Motor Tuning http://www.fairchildsemi.com/applications/motor- . control/bldc-pmsm-controller.html. Configure AMC Library System Requirements The MCDS IDE requires the following: . Microsoft® Windows® XP or Windows® 7 . 1 G RAM or greater . 100 MB of hard disk space . USB port . Keil µVision® 3 or above . MCDS Programming Kit © 2009 Fairchild Semiconductor Corporation www.fairchildsemi.com Rev. 1.0.0 • 2/18/13 AN-8207 APPLICATION NOTE Getting Started Software Installation Please follow steps below to install the MCDS IDE on the computer where development will occur. Download the MCDS IDE installation files from: http://www.fairchildsemi.com/applications/motor- control/bldc-pmsm-controller.html The Welcome to the MCDS Setup Wizard (See Figure 1) appears on the screen. 1. Click Next> to continue (or Cancel to exit). Figure 3. Select Start Menu Folder When the Ready to Install (see Figure 4) dialog appears, the selections are shown.
    [Show full text]
  • Control Flow Statements in Java Tutorials Point
    Control Flow Statements In Java Tutorials Point Cnidarian and Waldenses Bubba pillar inclemently and excorticated his mong troublesomely and hereabout. andRounding convective and conversational when energises Jodi some cudgelled Anderson some very prokaryote intertwiningly so wearily! and pardi? Is Gordon always scaphocephalous Go a certain section, commercial use will likely somewhere in java, but is like expression representation of flow control for loop conditionals are independent prognostic factors In this disease let's delve deep into Java Servlets and understand when this. Java Control Flow Statements CoreJavaGuru. Loops in Java Tutorialspointdev. Advantages of Java programming Language. Matlab object On what Kitchen Floor. The flow of controls cursor positioning of files correctly for the python and we represent the location of our java entry points and times as when exploits are handled by minimizing the. The basic control flow standpoint the typecase construct one be seen to realize similar to. Example- Circumference of Circle 227 x Diameter Here This technique. GPGPU GPU Java JCuda For example charity is not discount to control utiliza- com A. There are 3 types of two flow statements supported by the Java programming language Decision-making statements if-then they-then-else switch Looping. Java IfElse Tutorial W3Schools. Spring batch passing data between steps. The tutorial in? Remove that will need to point handling the tutorial will be used or run unit of discipline when using this statement, easing the blinking effect. Either expressed or database systems support for tcl as a controlling source listing applies to a sending field identifier names being part and production.
    [Show full text]
  • C Programming Tutorial
    C Programming Tutorial C PROGRAMMING TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i COPYRIGHT & DISCLAIMER NOTICE All the content and graphics on this tutorial are the property of tutorialspoint.com. Any content from tutorialspoint.com or this tutorial may not be redistributed or reproduced in any way, shape, or form without the written permission of tutorialspoint.com. Failure to do so is a violation of copyright laws. This tutorial may contain inaccuracies or errors and tutorialspoint provides no guarantee regarding the accuracy of the site or its contents including this tutorial. If you discover that the tutorialspoint.com site or this tutorial content contains some errors, please contact us at [email protected] ii Table of Contents C Language Overview .............................................................. 1 Facts about C ............................................................................................... 1 Why to use C ? ............................................................................................. 2 C Programs .................................................................................................. 2 C Environment Setup ............................................................... 3 Text Editor ................................................................................................... 3 The C Compiler ............................................................................................ 3 Installation on Unix/Linux ............................................................................
    [Show full text]
  • Debug Information Validation for Optimized Code
    Debug Information Validation for Optimized Code Yuanbo Li Shuo Ding Georgia Institute of Technology Georgia Institute of Technology USA USA [email protected] [email protected] Qirun Zhang Davide Italiano Georgia Institute of Technology Apple Inc. USA USA [email protected] [email protected] Abstract and does systematic testing by comparing the debugger out- put of P 0 and the actual value of v at line s in P . We Almost all modern production software is compiled with op- hs;v i hs;v i timization. Debugging optimized code is a desirable function- have applied our framework to two mainstream optimizing C ality. For example, developers usually perform post-mortem compilers (i.e., GCC and LLVM). Our framework has led to 47 debugging on the coredumps produced by software crashes. confirmed bug reports, 11 of which have already been fixed. Designing reliable debugging techniques for optimized code Moreover, in three days, our technique has found 2 confirmed has been well-studied in the past. However, little is known bugs in the Rust compiler. The results have demonstrated about the correctness of the debug information generated the effectiveness and generality of our framework. by optimizing compilers when debugging optimized code. CCS Concepts: • Software and its engineering ! Soft- Optimizing compilers emit debug information (e.g., DWARF ware testing and debugging; Compilers. information) to support source code debuggers. Wrong de- bug information causes debuggers to either crash or to dis- Keywords: Debug Information, Optimizing Compilers play wrong variable values. Existing debugger validation ACM Reference Format: techniques only focus on testing the interactive aspect of de- Yuanbo Li, Shuo Ding, Qirun Zhang, and Davide Italiano.
    [Show full text]
  • An ECMA-55 Minimal BASIC Compiler for X86-64 Linux®
    Computers 2014, 3, 69-116; doi:10.3390/computers3030069 OPEN ACCESS computers ISSN 2073-431X www.mdpi.com/journal/computers Article An ECMA-55 Minimal BASIC Compiler for x86-64 Linux® John Gatewood Ham Burapha University, Faculty of Informatics, 169 Bangsaen Road, Tambon Saensuk, Amphur Muang, Changwat Chonburi 20131, Thailand; E-mail: [email protected] Received: 24 July 2014; in revised form: 17 September 2014 / Accepted: 1 October 2014 / Published: 1 October 2014 Abstract: This paper describes a new non-optimizing compiler for the ECMA-55 Minimal BASIC language that generates x86-64 assembler code for use on the x86-64 Linux® [1] 3.x platform. The compiler was implemented in C99 and the generated assembly language is in the AT&T style and is for the GNU assembler. The generated code is stand-alone and does not require any shared libraries to run, since it makes system calls to the Linux® kernel directly. The floating point math uses the Single Instruction Multiple Data (SIMD) instructions and the compiler fully implements all of the floating point exception handling required by the ECMA-55 standard. This compiler is designed to be small, simple, and easy to understand for people who want to study a compiler that actually implements full error checking on floating point on x86-64 CPUs even if those people have little programming experience. The generated assembly code is also designed to be simple to read. Keywords: BASIC; compiler; AMD64; INTEL64; EM64T; x86-64; assembly 1. Introduction The Beginner’s All-purpose Symbolic Instruction Code (BASIC) language was invented by John G.
    [Show full text]
  • Software Countermeasures for Control Flow Integrity of Smart Card C Codes Jean-François Lalande, Karine Heydemann, Pascal Berthomé
    Software countermeasures for control flow integrity of smart card C codes Jean-François Lalande, Karine Heydemann, Pascal Berthomé To cite this version: Jean-François Lalande, Karine Heydemann, Pascal Berthomé. Software countermeasures for control flow integrity of smart card C codes. ESORICS - 19th European Symposium on Research inComputer Security, Sep 2014, Wroclaw, Poland. pp.200-218, 10.1007/978-3-319-11212-1_12. hal-01059201 HAL Id: hal-01059201 https://hal.inria.fr/hal-01059201 Submitted on 13 Sep 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Software countermeasures for control flow integrity of smart card C codes Jean-Fran¸cois Lalande13, Karine Heydemann2, and Pascal Berthom´e3 1 Inria, Sup´elec, CNRS, Univ. Rennes 1, IRISA, UMR 6074 35576 Cesson-S´evign´e, France, [email protected] 2 Sorbonne Universit´es, UPMC, Univ. Paris 06, CNRS, LIP6, UMR 7606 75005 Paris, France, [email protected] 3 INSA Centre Val de Loire, Univ. Orl´eans, LIFO, EA 4022 18022 Bourges, France, [email protected] Abstract. Fault attacks can target smart card programs in order to disrupt an execution and gain an advantage over the data or the embed- ded functionalities.
    [Show full text]