Pascal (Programmiersprache) – Wikipedia Pascal (Programmiersprache)

Total Page:16

File Type:pdf, Size:1020Kb

Pascal (Programmiersprache) – Wikipedia Pascal (Programmiersprache) 10.12.12 Pascal (Programmiersprache) – Wikipedia Pascal (Programmiersprache) aus Wikipedia, der freien Enzyklopädie Die Programmiersprache Pascal (benannt nach dem Mathematiker Blaise Pascal) wurde von Niklaus Wirth Pascal an der ETH Zürich im Jahr 1972 als Lehrsprache Paradigmen: imperativ, strukturiert eingeführt, um die strukturierte Programmierung zu lehren. Erscheinungsjahr: 1972 Entwickler: Niklaus Wirth Typisierung: stark, statisch Inhaltsverzeichnis Dialekte: UCSD-Pascal, Borland Turbo Pascal 1 Allgemeines zur Sprache Beeinflusst von: ALGOL 1.1 Datentypen Beeinflusste: Modula-2, Ada, Oberon, 1.2 Programmstrukturen Object Pascal, Web 1.3 Steuerkonstrukte 1.4 Nachteile 1.5 Compiler 2 Unterschiede zu C 3 Standards 4 Pascal und Mac OS 5 Implementierungen (Compiler, Interpreter und IDEs) 6 Hallo Welt 7 Weiterentwicklungen Niklaus Wirth, der Entwickler von Pascal 8 Einzelnachweise 9 Literatur 10 Weblinks Allgemeines zur Sprache Pascal ist eine Weiterentwicklung von Algol 60. Als Lehrsprache wurde es so einfach und strukturiert wie möglich gestaltet. Seine große Verbreitung in der professionellen Programmierung fand es als Borland/Turbo Pascal (später Object Pascal) – gegenüber dem Ur-Pascal wesentlich erweiterte und verbesserte Versionen. Pascal zeichnet sich durch eine strikte und einfach verständliche Syntax sowie durch den Verzicht auf kontextabhängige Interpretationen des Codes aus. Somit erlaubt Pascal im Vergleich zu Sprachen wie C und Fortran eine gute Lesbarkeit und, verglichen mit den damaligen Versionen von Fortran, auch eine bessere Unterstützung von strukturierter Programmierung. Ein wichtiges Konzept, das Wirth zur Anwendung brachte, ist die starke Typisierung (engl. „strong typing“): Variablen sind bereits zur Übersetzungszeit einem bestimmten Datentyp zugeordnet, und dieser kann nicht nachträglich verändert werden. Typenstrenge bedeutet, dass Wertzuweisungen ausschließlich unter Variablen gleichen Typs erlaubt sind. In Pascal gibt es von diesem strikten Zwang lediglich wenige Ausnahmen: Wertzuweisungen der Form [Variable vom Typ real] := [Wert vom Typ integer]. de.wikipedia.org/wiki/Pascal_(Programmiersprache) 1/7 10.12.12 Pascal (Programmiersprache) – Wikipedia In Extended-Pascal Wertzuweisungen von ganzzahligen oder reellen Zahlen an Variablen vom Type Complex. Wertzuweisungen von eingeschränkten Wertebereichen eines ordinalen Typs. Beispiel: type int10 = 1 .. 10; Werte dieses Typs können dann Integervariablen zugewiesen werden. Wertzuweisungen von Mengen eines eingeschränkten Wertebereiches eines ordinalen Typs. Beispiel: type set10 = set of 1 .. 10; set20 = set of 1 .. 20; Werte des Typs set10 können dann Variablen des Typs set20 zugewiesen werden. Wertzuweisungen auf eingeschränkte Wertebereiche eines ordinalen Typs oder einer Menge. In diesem Fall rufen Werte bzw. Mengen-Elemente außerhalb des Zielbereichs einen Laufzeitfehler hervor. Wertzuweisungen zwischen unterschiedlichen String-Typen, inkl. Char, Zeichen-Arrays gemäß Standard- Pascal und den verschiedenen String-Typen in Extended-Pascal, Borland Pascal usw. Sofern die Länge des Wertes nicht innerhalb der Kapazität des Ziels liegt, ergibt sich auch hier ein Laufzeitfehler. Heute findet Pascal im universitären Bereich (Entwicklung/Ausbildung) und in sicherheitskritischen Bereichen (z. B. Verkehrstechnik, Energieversorgung, Medizintechnik, Raumfahrt, Militär, teilweise im Banken- und Versicherungswesen) Anwendung. Dies beruht hauptsächlich auf der guten Prüfbarkeit und Wartbarkeit des Codes und der klaren Zuordnung der Variablen. So ist die 2005 eingeführte Betriebsleittechnik IV der Transrapid-Versuchsanlage Emsland in Pascal programmiert. Eine pascalähnliche Notation wird von jeher in der Informatik und Mathematik zur Darstellung von Algorithmen benutzt.[1] Aus didaktischen Gründen, es seien hier die Typstrenge, hohe Fehlersicherheit und frei verfügbare portierbare Pascalcompiler (Free Pascal, GNU Pascal) genannt, wird im aktuellen Informatikunterricht Pascal ebenfalls häufig eingesetzt.[2] Im Hobby-Bereich erlangte Pascal zeitweilig eine sehr weite Verbreitung, die jedoch mit neueren Microsoft-Windows-Versionen wieder zurückging.[3] Datentypen Pascal kennt als einfache Datentypen char, boolean, integer, real und ordinale Datentypen. In einigen Dialekten wurden die einfachen numerischen Datentypen erweitert, um passende Wortlängen abzudecken. Strukturierte Datentypen sind array, record, set (Mengen) und file. Der Datentyp text entspricht der Definition type text = file of char; Programmstrukturen Charakteristisch für Pascal ist das Konzept der Verschachtelung von Prozeduren und Funktionen. Im Deklarationsteil einer Prozedur oder Funktion können andere Prozeduren und Funktionen auftauchen. Dabei gibt es klar verständliche Prinzipien über die Sichtbarkeit von Deklarationen in übergeordneten Funktionen und Prozeduren. Steuerkonstrukte Steuerkonstrukte sind if then else, case (in Dialekten mit einem else oder otherwise versehen), for, repeat, while und goto. Da Pascal der strukturierten Programmierung dient, soll das goto lediglich strukturerhöhend eingesetzt werden. Pascal unterstützt in seiner Urform keine Anweisungen, mit denen Prozeduren oder Schleifen hart verlassen werden können. Als strukturerhöhendes goto werden Sprünge ans Ende von Prozeduren oder unmittelbar hinter Schleifenenden akzeptiert, sofern sich dadurch umfangreiche Konstruktionen schlecht lesbarer if-Anweisungen oder undurchschaubarer boolescher Ausdrucke vermeiden lassen. Viele Pascal-Compiler erlauben keine goto, die zu instabilen Systemzuständen führen, z. B. der Sprung in den Anweisungsblock einer Schleife oder eines if. de.wikipedia.org/wiki/Pascal_(Programmiersprache) 2/7 10.12.12 Pascal (Programmiersprache) – Wikipedia Nachteile Da die Sprache als Lehrsprache konzipiert war, wies das Standard-Pascal einige Merkmale auf, die den kommerziellen Einsatz erschwerten: Das Konzept für Dateizugriffe („file I/O“) war nicht mächtig, die Laufzeitbibliothek wenig umfangreich, und Zeichenketten konnten nur über Umwege (packed array) direkt im Code verwendet werden. Das führte dazu, dass praktisch jede kommerzielle Implementierung hierzu eigene Lösungen anbot, was zunächst (ähnlich wie die Diversifizierung bei C) zu eigenen Pascal-Dialekten und damit zu Kompatibilitätsproblemen führte. Mit der monopolartigen Dominanz der Borland Turbo-Pascal-Produkte verschwanden diese Unterschiede fast vollständig. Ein anderer wesentlicher Nachteil war, dass eine Modularisierung im Sinne getrennter Compilierung nicht vorgesehen war – was mit der Weiterentwicklung Modula-2 geändert wurde. Plattformspezifische Implementierungen sahen dafür eigene Lösungen vor (z. B. die Units von Turbo-Pascal, oder später die Module in ANSI/ISO Extended Pascal). Compiler Der erste Pascal-Compiler selbst entstand auf der CDC Cyber 6000 der ETH Zürich. Daraus entstand dann Pascal 6000, das als erste operative Version eines Compilers der Sprache gesehen werden kann. Ein zweiter Pascal-Compiler – der P4 „Portable Pascal Compiler“ von Urs Ammann, Kesav Nori und Christian Jacobi – stammte ebenfalls von der ETH Zürich. Der P4 erzeugte eine plattformunabhängige, als Assemblersprache ausgelegte Zwischensprache, den P-Code, der durch eine sogenannte virtuelle Maschine (ein Programm) interpretiert wird. Später entstanden dann Compiler, die auf dem P4 basierten. Die verbreitetste Version wurde unter dem Namen UCSD Pascal bekannt, das auf vielen Systemen implementiert wurde, u. a. auf Apple II und Texas Instruments TI-99/4A und wesentlich zur Verbreitung der Sprache sowohl (zuerst) in den Vereinigten Staaten, später auch in Europa beitrug. Im Mai 2006 wurden die Quelltexte von UCSD Pascal freigegeben. Bei den meisten Pascal-Compilern handelte es sich um Single-Pass-Compiler, d. h. der Compiler muss die Quelle nur ein einziges Mal lesen und analysieren. Das Design der Sprache war so gehalten, um genau das zu ermöglichen. Bei der damaligen geringen Geschwindigkeit der Rechner war dies ein großer Vorteil. Unterschiede zu C Sehr hohe Prozesssicherheit – Da Pascal sowie der Quasi-Standard Borland/Turbo-Pascal eine strikte Trennung unterschiedlicher Typen vorsehen und die Zuweisungskompatibilität von Ausdrücken beachten, kommen „versteckte/automatische“ Typumwandlungen, anders als in C, praktisch nicht vor. Insbesondere bei der Übergabe von Daten (z. B. aus externen Dateien, aber auch innerhalb des Programms) an Funktionen oder Prozeduren kann der Compiler schon beim Compilieren die Korrektheit der Typen kontrollieren (gleiches gilt für Array-Grenzen, Integer-Überlauf, Wrap-Around-Fehler, Stack- Überlauf u. ä., die in anderen Programmiersprachen wie z. B. C++ oder C häufig subtile und schwer zu lokalisierende (Laufzeit-)Fehler erzeugen). keine nullterminierten Zeichenketten – Standard Pascal hatte zwar Zeichenketten-Literale, aber keinen Typ string (s. oben). In einigen späteren Versionen werden Zeichenketten nicht durch ein Null- Byte terminiert, sondern es wird die Länge im ersten Byte String[0]) gespeichert und über die Funktion length(<Bezeichner>) abgefragt. Somit beginnt das erste Nutzzeichen bei String[1]. Dies hatte eine sehr schnelle Verarbeitung (deutlich schneller als in Borland/GNU C++ oder C) zur Folge, aber auch den Nachteil, dass Zeichenketten nicht beliebig lang sein konnten. In vielen Implementierungen (z. B. Turbo Pascal) war für die Speicherung der Zeichenkettenlänge ein Byte de.wikipedia.org/wiki/Pascal_(Programmiersprache) 3/7 10.12.12 Pascal (Programmiersprache) – Wikipedia vorgesehen, so dass die Länge auf 255 Zeichen
Recommended publications
  • Renamer User Manual
    ReNamer User Manual www.den4b.com PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Thu, 31 Mar 2016 23:44:52 CEST Contents Articles Basics 1 ReNamer 1 Introduction 2 Quick Guide 3 Step-by-step 4 Adding files and folders 4 Managing Rules 8 Previewing Files 11 Renaming Files 12 Rules 14 Using the Rules 14 Overview of Rules 14 Insert Rule 15 Delete Rule 17 Remove Rule 18 Replace Rule 20 Rearrange Rule 22 Extension Rule 24 Strip Rule 25 Case Rule 26 Serialize Rule 28 CleanUp Rule 30 Translit Rule 31 RegEx Rule 35 PascalScript Rule 37 UserInput Rule 40 ReformatDate Rule 42 Pascal Script 44 Pascal Script 44 Quick Guide 46 Types 49 Functions 51 User Scripts 65 Appendices 67 Using Presets 67 Manual Editing 73 Analyze 75 Program settings 76 Main Menu and Keyboard Shortcuts 82 Menus for the Files Pane 84 Context Menus 91 Date and Time Format 93 Binary Signatures 94 Meta Tags 97 Analyze 98 Regular Expressions 100 Command Line Mode 107 Sorting Files 110 Using Masks 111 Renaming Folders 111 Renaming to Another Folder 112 Failed Renaming 114 Validation of New Names 115 Examples of rules 115 Examples of Rearrange rule 117 References Article Sources and Contributors 128 Image Sources, Licenses and Contributors 130 Article Licenses License 132 1 Basics ReNamer ReNamer is a very powerful and flexible file renaming tool. ReNamer offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, removing the content inside brackets, adding number sequences, changing file extensions, etc.
    [Show full text]
  • VERSION 2.0 Referene MANUAL
    VERSION 2.0 REFERENe MANUAL BORlAnD INTERNATIONAL Borland International 4113 Scotts Valley Drive Scotts Valley, California 95066 Copyright Notice© This software package and manual are copyrighted 1983, 1984 by BORLAND INTERNATIONAL Inc. All rights reserved worldwide. No part of this publication may be reproduced, transmitted, transcribed, stored in any retrieval system, or translated into any language by any means without the express written per­ mission of BORLAND INTERNATIONAL Inc., 4113 Scotts Valley Drive, Scotts Valley, CA 95066, USA. Single CPU License The price paid for one copy of TURBO Pascal licenses you to use the product on one CPU when and only when you have signed and returned the License Agreement printed in this book. Disclaimer Borland International makes no warranties as to the contents of this manual and specifically disclaims any implied warranties of merchantability or fitness for any particular purpose. Borland International further reserves the right to make changes to the specifications of the program and contents of the manual without obligation to notify any person or organization of such changes. Fifth edition, October 1984 Printed in the United States of America 98765 TABLE OF CONTENTS INTRODUCTION ............................................. 1 The Pascal Language .........................................1 TURBO Pascal ..............................................1 Structure of This Manual ..................................... 2 Typography ............................................... 3 Syntax Descriptions
    [Show full text]
  • TURBO Pascal Tutor·
    The TURBO Pascal Tutor· A Self-Study Guide to TURBO Pascal Copyright @1984 Copyright @1985 BORLAND INTERNATIONAL, INC. 4585 Scotts Valley Drive Scotts Valley, CA 95066 U.S.A. Borland's No-Nonsense License Statement! This software is protected by both United States Copyright Law and International Treaty provisions. Therefore you must treat this software just like a book with the following single exception. Borland International authorizes you to make archival copies of the software for the sole purpose of backing-up your software and protecting your investment from loss. By saying, "just like a book", Borland means for example that this software may be used by any number of people and may be freely moved from one computer location to another so long as there is No Possibility of it being used at one location while it's being used at another. Just like a book that can't be read by two different people in two different places at the same time, neither can the software be used by two different people in two different places at the same time. (Unless, of course, Borland's Copyright has been violated.) WARRANTY With respect to the physical diskette and physical documentation enclosed herein, BORLAND INTERNATIONAL, INC., ("BORLAND") warrants the same to be free of defects in materials and workmanship for a period of 30 days from the date of purchase. In the event of notification within the warranty period of defects in material or workmanship, BORLAND will replace the defective diskette or documentation. The remedy for breach of this warranty shall be limited to replacement and· shall not encompass any other damages, including but not limited to loss of profit, special, incidental, consequential, or other similar claims.
    [Show full text]
  • What Is Inno Setup? Inno Setup Version 5.5.6 Copyright © 1997-2015 Jordan Russell
    What is Inno Setup? Inno Setup version 5.5.6 Copyright © 1997-2015 Jordan Russell. All rights reserved. Portions Copyright © 2000-2015 Martijn Laan. All rights reserved. Inno Setup home page Inno Setup is a free installer for Windows programs. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability. Key features: Support for every Windows release since 2000, including: Windows 10, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP, Windows Server 2003, and Windows 2000. (No service packs are required.) Extensive support for installation of 64-bit applications on the 64-bit editions of Windows. Both the x64 and Itanium architectures are supported. (On the Itanium architecture, Service Pack 1 or later is required on Windows Server 2003 to install in 64-bit mode.) Supports creation of a single EXE to install your program for easy online distribution. Disk spanning is also supported. Standard Windows wizard interface. Customizable setup types, e.g. Full, Minimal, Custom. Complete uninstall capabilities. Installation of files: Includes integrated support for "deflate", bzip2, and 7-Zip LZMA/LZMA2 file compression. The installer has the ability to compare file version info, replace in-use files, use shared file counting, register DLL/OCX's and type libraries, and install fonts. Creation of shortcuts anywhere, including in the Start Menu and on the desktop. Creation of registry and .INI entries. Running other programs before, during or after install. Support for multilingual installs, including right-to-left language support. Support for passworded and encrypted installs.
    [Show full text]
  • TMS Scripter Documentation
    Overview TMS Scripter is a set of Delphi/C++Builder components that add scripting capabilities to your applications. With TMS Scripter your end-user can write his own scripts using visual tools and then execute the scripts with scripter component. Main components available are: • TatScripter: Non-visual component with cross-language support. Executes scripts in both Pascal and Basic syntax. • TatPascalScripter: Non-visual component that executes scripts written in Pascal syntax. • TatBasicScripter: Non-visual component that executes scripts written in Basic syntax. • TScrMemo: Lightweight syntax highlight memo, that can be used to edit scripts at run- time. TatScripter, TatPascalScripter, TatBasicScripter and TIDEScripter (in this document, all of these componentes are just called Scripter) descend from TatCustomScripter component, which has common properties and methods for scripting execution. The scripter has the following main features: • Run-time Pascal and Basic language interpreter; • Access any Delphi object in script, including properties and methods; • Supports try..except and try..finally blocks in script; • Allows reading/writing of Delphi variables and reading constants in script; • Allows access (reading/writing) script variables from Delphi code; • You can build (from Delphi code) your own classes, with properties and methods, to be used in script; • Most of Delphi system procedures (conversion, date, formatting, string-manipulation) are already included (IntToStr, FormatDateTime, Copy, Delete, etc.); • You can save/load compiled code, so you don't need to recompile source code every time you want to execute it; • Debugging capabilities (breakpoint, step into, run to cursor, pause, halt, and so on); • Thread-safe; • COM (Microsoft Common Object Model) Support; • DLL functions calls.
    [Show full text]
  • BORLAND Turbo Pascafbj Version 6.0
    BORLAND Turbo PascafBJ Version 6.0 Turbo Vision Guide BORLAND INTERNATIONAL INC. 1800 GREEN HILLS ROAD P.O. BOX 660001, scons VALLEY, CA 95067-0001 Copyright © 1990 by Borland International. All rights reserved. All Borland products are trademarks or registered trademarks of Borland International, Inc. Other brand and product names are trademarks or registered trademarks of their respective holders. PRINTED IN THE USA. R2 10 9 8 7 6 5 4 3 2 1 c o N T E N T s Introduction 1 Chapter 2 Writing Turbo Vision Why Turbo Vision? ................... 1 applications 23 What is Turbo Vision? ................. 1 Your first Turbo Vision application . .. 23 What you need to know ............... 2 The desktop, menu bar, and status line .. 25 What's in this book? ................... 2 The desktop . .. 26 The status line . .. 26 Part 1 Learning Turbo Vision Creating new commands. .. 27 Chapter 1 Inheriting the wheel 7 The menu bar ..................... 28 The framework of a windowing A note on structure . .. 30 application . .. 7 Opening a window. .. 31 A new Vision of application development. 8 Standard window equipment . .. 31 The elements of a Turbo Vision Window initialization .............. 33 application . .. 9 The Insert method ............... 33 Naming of parts .................... 9 Closing a window. .. 34 Views ........................... 9 Window behavior . .. 34 Events ........................... 9 Look through any window . .. 35 Mute objects. .. 10 What do you see? .................. 37 A common "look and feel" .......... 10 A better way to Write. .. 38 "Hello, World!" Turbo Vision style ..... 12 A simple file viewer .. .. 38 Running HELLO.PAS .............. 13 Reading a text file .. .. 39 Pulling down a menu. .. 14 Buffered drawing .................
    [Show full text]
  • Download Turbo Pascal 7.1 Full Version ->->->-> DOWNLOAD
    Download Turbo Pascal 7.1 Full Version ->->->-> DOWNLOAD 1 / 4 2 / 4 Look Up Quick Results Now! Find Related Search and Trending Suggestions Here.Ke tiga Download Turbo Pascal . Subway Surfers HD for PC Full Version; Internet Download Manager 6.20 . WebcamMax 7.7.1 Full Patch; Internet Download Manager 6.14 .Download Turbo Pascal 7.1 . Is TP71 an official release of turbo pascal? I find no info on such version . I would go with the disk set if your looking for a full .Downloading Borland Turbo Pascal 1.5 for Microsoft Windows (5.25-1.2mb) version 1.5 for Microsoft Windows. Thanks for downloading from WinWorld, your primary source .FREE DOWNLOAD TURBO PASCAL 7.1. VMware Workstation 10.0.4 2014 Full Version Free Download VMware Workstation 10.0.4 + Keygen 472 MB .download turbo pascal Windows 8 downloads - Free Download Windows 8 download turbo . Demo spy software download enables you to perform every function as full version.Turbo Pascal Download - here are listed some old version of Borland Turbo Pascal compilers available for free download.MidwayUSA is a privately held American retailer of various hunting and outdoor-related products.Download Turbo Pascal 7.1, Download DOSBox 0.74, Tutorial Install Turbo Pascal and DOSBox, Ready to Use, . Edited by Chrono5oft, Free and Full Version, .Version information for Borland, Inprise Pascal and Turbo Pascal compilers and addons. Borland/Inprise Pascal Versions. Full version packaging.turbo pascal 7.1 download, Download Accelerator Plus 10, Download Accelerator Plus 10.0.5.3, Free Pascal 2.4.0Downloading Borland Turbo Pascal 7.1 (3.5) version 7.1.
    [Show full text]
  • Pascalscript 3.0 Von Remobjects
    kleiner kommunikation [email protected] 1 PascalScript 3.0 von RemObjects Wie man mit wirksamen Mitteln eine Applikation mit einer Scripting Engine ausstatten kann, zeigt der Einsatz von PascalScript (PS). Man erhält eine flexible und ausbaufähige Technik die bspw. ein Programm zur Laufzeit beim Kunden erweitert, ganz ohne Neukompilieren oder Installation des Systems. Anhand des mitgelieferten Skripteditor für Ausbildung, Industrie oder Prototyping, welcher Skript und Ausgabebereich auf einen Blick erlaubt, lässt sich die PS Engine im Folgenden erklären. 1.1 Pascal Power zum Nulltarif Pascal Script ist eine freie und kostenlose Scripting Engine, die den Aufruf der meisten ObjectPascal Sprachkonstrukte zur Laufzeit in einem Delphi Projekt ermöglicht. PS wurde von Carlo Kok komplett in Delphi entwickelt, der mittlerweile eine Zusammenarbeit mit RemObjects i eingegangen ist. RemObjects treibt mit Freude und Freunden die Weiterentwicklung von PS voran. Diese Bibliothek, die sich in die Komponentenpalette von Delphi integrieren lässt, ist als Komponentensammlung strukturiert und durchdacht aufgebaut, da ein Helpsystem, ein eigenes Forum (remobjects.public.pascalscript) und zusätzliche Beispiele das Paket nützlich ergänzen. PS bietet folgende Merkmale: • Variablen, Konstanten und Standardkonstrukte • Funktionen, Rekursion und Standardtypen • Import von Delphi Funktionen und Klassen • Zuweisung von Scriptfunktionen zu Delphi Ereignissen • Kompilieren eines Byte Code Files zum späteren Einsatz • Einfacher Gebrauch der Design Komponenten Die Installation ist bequem als Package organisiert. Nach dem Herunterladen der komprimierten Datei (Version 3.0.3.45 vom 12.7.04) erhält man eine Verzeichnisstruktur, worin sich auch Pakete und Sourcen für Delphi 6,7 und Kylix 3 befinden. Für Kylix 2 Entwickler habe ich eine eigene inoffizielle Migration mit zugehörigem Paket erstellt (PascalScript_kylix2.zip).
    [Show full text]
  • Turbo Pascal 7 Language
    7.0 LANGUAGE GUIDE • LANGUAGE DEFINITION • STANDARD UNITS • MEMORY MANAGEMENT • ASSEMBLY LANGUAGE B 0 R L 'A N D Turbo Pasca/® Version 7.0 Language Guide BORLAND INTERNATIONAL INC. 1800 GREEN HILLS ROAD P.O. BOX 660001, scons VALLEY, CA 95067-0001 Copyright © 1983, 1992 by Borland International. All rights reserved. All Borland products are trademarks or registered trademarks of Borland International, Inc. Windows, as used in this manual, shall refer to Microsoft's implementation of a windows system. Other brand and product names are trademarks or registered trademarks of their respective holders. PRINTED IN THE USA. Rl 10 9 8 c o N T E N T s Introduction 1 Real types . .. 28 What's in this manual .................. 2 Software floating point ........... 29 80x87 floating point .............. 29 Part 1 The Turbo Pascal language String types ......................... 29 Chapter 1 What is a Turbo Pascal Structured types ..................... 30 progrnm? 5 Array types ....................... 30 A Turbo Pascal program ............... 5 Record types ...................... 32 Procedures and functions .............. 6 Object types . .. 33 Statements ........................... 8 Components and scope ........... 36 Expressions .......................... 9 Methods ........................ 37 Tokens ............................. 10 Virtual methods ................. 37 Types, variables, constants, and typed Dynamic methods ............... 38 constants ........................... 10 Instantiating objects . .. 38 Putting it all together . .. 11 Method
    [Show full text]
  • Infinite Loop Syntax Support for a Pascal-Family Language
    Infinite loop syntax support for a Pascal-family language http://coderesearchlabs.com/articles/ILP.pdf Code Research Laboratories www.coderesearchlabs.com Javier Santo Domingo [email protected] Buenos Aires, Argentina started - April 9th, 2010 published - July 9th, 2010 last revision - May 4th, 2011 copyright is held by the author all trademarks and logos are the property of their respective owners 1. Introduction Infinite loops are a basic logic flow need that is supported by conventional processors and virtual machines (see table A), but there is always a valid solution to avoid them in High Level Languages. In any case, the discussion if it is or not a good practice will never end. There is no code (operative system, service daemon, command line, real-time system, message loop, etc) that can not avoid an infinite loop, that's a fact: you can always write loops with an exit condition. Besides that, and nowadays that code readability is very important (and that goto has been totally removed from good practices), there are many developers that prefer to implement an infinite loop and break it's execution in the middle [1], or that coding a program "designed to never stop" come to solutions with an infinite loop. x86's assembly ARM's assembly .NET's ilasm Java's bytecode Llvm's assembly label: label label: label: Loop: ; something ; something // something ; something ; something jmp label B label br label goto label br label %Loop Infinite Loops (unconditional jumps/branches) in Some Low/Mid Level Of Abstraction Languages table A 2. Different Kind of Loops Usually, how you order the logic for the solution you are writing determines where you will be testing the exit condition for a loop: at the top or at the bottom [2].
    [Show full text]
  • Modern Object Pascal Introduction for Programmers
    Modern Object Pascal Introduction for Programmers Michalis Kamburelis Table of Contents 1. Why ....................................................................................................................... 3 2. Basics .................................................................................................................... 3 2.1. "Hello world" program ................................................................................. 3 2.2. Functions, procedures, primitive types ....................................................... 4 2.3. Testing (if) ................................................................................................... 6 2.4. Logical, relational and bit-wise operators ................................................... 8 2.5. Testing single expression for multiple values (case) ................................... 9 2.6. Enumerated and ordinal types and sets and constant-length arrays ......... 10 2.7. Loops (for, while, repeat, for .. in) ............................................................ 11 2.8. Output, logging ......................................................................................... 14 2.9. Converting to a string ............................................................................... 15 3. Units .................................................................................................................... 16 3.1. Units using each other .............................................................................. 18 3.2. Qualifying identifiers with
    [Show full text]
  • Free Pascal Language Reference Guide
    Free Pascal : Reference guide. Reference guide for Free Pascal, version 2.4.2 Document version 2.4 November 2010 Michaël Van Canneyt Contents 1 Pascal Tokens 10 1.1 Symbols......................................... 10 1.2 Comments........................................ 11 1.3 Reserved words..................................... 12 1.3.1 Turbo Pascal reserved words.......................... 12 1.3.2 Free Pascal reserved words........................... 13 1.3.3 Object Pascal reserved words......................... 13 1.3.4 Modifiers.................................... 13 1.4 Identifiers........................................ 13 1.5 Hint directives...................................... 14 1.6 Numbers......................................... 15 1.7 Labels.......................................... 16 1.8 Character strings.................................... 17 2 Constants 19 2.1 Ordinary constants................................... 19 2.2 Typed constants..................................... 20 2.3 Resource strings..................................... 20 3 Types 22 3.1 Base types........................................ 22 3.1.1 Ordinal types.................................. 23 Integers..................................... 23 Boolean types.................................. 24 Enumeration types............................... 25 Subrange types................................. 26 3.1.2 Real types.................................... 27 3.2 Character types..................................... 27 3.2.1 Char....................................... 27
    [Show full text]