The Ct Programming Language

Total Page:16

File Type:pdf, Size:1020Kb

The Ct Programming Language The cT Programming Language Version 3.0 Created by David Andersen, Bruce Sherwood, Judith Sherwood, and Kevin Whitley Center for Innovation in Learning Carnegie Mellon University Pittsburgh http://cil.andrew.cmu.edu/ct.html 1 Contents 1. THE CT PROGRAMMING LANGUAGE.................................................... 4 cT Menu Options............................................................................................ 11 Additional Language Aspects ............................................................................. 17 2. GRAPHICS & TEXT.............................................................................. 3 2 Basic Graphics & Text Commands....................................................................... 34 Describing the Screen................................................................................................................... 34 Displaying Text and Variables......................................................................................................... 39 Lines, Circles, Boxes, Etc. ............................................................................................................. 52 Mode, Pattern, Thick, Cursor, & Clip.................................................................. 60 Inhibit and Allow in Graphics............................................................................ 65 Color.......................................................................................................... 71 Images......................................................................................................... 88 Animations................................................................................................... 98 Making a Graph ............................................................................................102 Relative Graphics Commands............................................................................112 3. VIDEO & SOUND............................................................................... 117 Video Commands...........................................................................................117 4. MOUSE & KEYSET INTERACTIONS.................................................. 124 Mouse, Single Key, & Timed Pause....................................................................125 Pull-down Menus...........................................................................................136 Buttons, Dialog Boxes, Sliders, & Edit Panels ......................................................142 Scrolling Text Panels .....................................................................................149 Word & Number Input.....................................................................................158 Basic Judging Commands.............................................................................................................159 Modifying Judging Defaults...........................................................................................................169 Inhibit and Allow in Judging...........................................................................................................177 Specialized Judging Commands ...................................................................................................181 2 5. CALCULATIONS................................................................................ 187 Defining Variables.........................................................................................190 Basic Calculational Operations..........................................................................200 Array Operations ...........................................................................................208 IF, CASE, and LOOP .....................................................................................215 Random Variables..........................................................................................221 6. CONNECTING UNITS & PROGRAMS ................................................ 223 Units -- Program Subdivisions ..........................................................................223 Moving between Main Units.............................................................................237 Connections to Other Programs .........................................................................241 7. CHARACTER STRINGS..................................................................... 246 Basic Marker Operations..................................................................................248 Marker Commands .........................................................................................259 Marker Functions ..........................................................................................264 Some Examples with Markers ...........................................................................277 8. FILES, SERIAL PORT, & SOCKETS .................................................. 285 File Handling Commands.................................................................................289 Socket Commands..........................................................................................311 9. SYSTEM VARIABLES........................................................................ 318 System Variables for Graphics and Mouse ............................................................321 Other System Variables...................................................................................329 INDEX.................................................................................................... 338 3 INTRODUCTION 1. The cT Programming Language Purpose of cT This is a print version of the on-line help for cT 3.0 (August 1999). See the on-line help on the Window menu for updated information, and a history of previous versions. Also see http://cil.andrew.cmu.edu/ct.html. The cT programming language is an algorithmic language like C, Pascal, Fortran, and Basic, but greatly enhanced by multimedia capabilities, including easy-to-use support for color graphics, mouse interactions, and even movies in QuickTime or Video for Windows format. The cT programming language offers easy programmability of multimedia programs, with portability across Macintosh, Windows, and Unix. The cT programming environment offers on-line help with executable program examples, a graphics editor for automatic generation of graphics commands, incremental compiling to provide rapid turnaround, and detailed error diagnosis. When is cT the right tool? There are many excellent applications available for creating pictures and diagrams, and for making multimedia presentations, without having to write your own computer program. However, it is sometimes the case that doing something really new and different is hard to do with these nonprogramming applications, because they often don't provide enough control of interactions and enough calculational capability to do what you really want to do. cT offers the open-ended flexibility and power associated with programming languages but eliminates many of the difficulties and complexities usually associated with using a programming language. Credits cT has been developed in the Center for Innovation in Learning at Carnegie Mellon University in Pittsburgh by David Andersen, Bruce Sherwood, Judith Sherwood, and Kevin Whitley. cT is a trademark of Carnegie Mellon University. Special thanks to: Andrew Appel, Bill Arms, Steven Bend, Ruth Chabay, Preston Covey, Andy van Dam, Ken Friend, Fred Hansen, Stacie Hibino, Chris Koenigsberg, Peter Kornelisse, Jay Laefer, Jill Larkin, Michael LoBue, David Madden, Gregg Malkary, Ben McCurtain, Jim Morris, Tom Neuendorffer, Tom Peters, Carol Scheftic, and David Trowbridge. License information cT is a copyright © Carnegie Mellon University, 1989, 1992, 1995, 1999. Permission to reproduce and use cT for internal use is granted provided the copyright and "No Warranty" statements are included with all reproductions. cT may also be redistributed without charge provided that the copyright and "No Warranty" statements are included in all redistributions. 4 NO WARRANTY. cT IS FURNISHED ON AN "AS IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY OF RESULTS OR RESULTS OBTAINED FROM USE OF cT. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK OR COPYRIGHT INFRINGEMENT. An Example Program Given below is a short program written in cT. This program illustrates graphics, rich text, animation, and mouse interactions. Copy the example into the start of the program window (after the $syntaxlevel line). Execute the program by choosing "Run from beginning" on the Option menu. Click the button; draw in the box; use the pull-down menu to clear the box. Change the size of the window and see how the program starts all over again. (On a Macintosh, drag the lower-right corner of the window; no drag box is shown.) To stop, choose "Quit running" from the Option menu, which does not quit cT. After running the program, read through the program carefully, one line at a time, to see how the effects are achieved. You may want to look up detailed information on individual commands. Try changing the program and running it again. Be sure to read the next topic, "Further Discussion". Example program to be copied, down to "End of example program": unit cTexample * (An asterisk * at the
Recommended publications
  • Administering Unidata on UNIX Platforms
    C:\Program Files\Adobe\FrameMaker8\UniData 7.2\7.2rebranded\ADMINUNIX\ADMINUNIXTITLE.fm March 5, 2010 1:34 pm Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta UniData Administering UniData on UNIX Platforms UDT-720-ADMU-1 C:\Program Files\Adobe\FrameMaker8\UniData 7.2\7.2rebranded\ADMINUNIX\ADMINUNIXTITLE.fm March 5, 2010 1:34 pm Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Notices Edition Publication date: July, 2008 Book number: UDT-720-ADMU-1 Product version: UniData 7.2 Copyright © Rocket Software, Inc. 1988-2010. All Rights Reserved. Trademarks The following trademarks appear in this publication: Trademark Trademark Owner Rocket Software™ Rocket Software, Inc. Dynamic Connect® Rocket Software, Inc. RedBack® Rocket Software, Inc. SystemBuilder™ Rocket Software, Inc. UniData® Rocket Software, Inc. UniVerse™ Rocket Software, Inc. U2™ Rocket Software, Inc. U2.NET™ Rocket Software, Inc. U2 Web Development Environment™ Rocket Software, Inc. wIntegrate® Rocket Software, Inc. Microsoft® .NET Microsoft Corporation Microsoft® Office Excel®, Outlook®, Word Microsoft Corporation Windows® Microsoft Corporation Windows® 7 Microsoft Corporation Windows Vista® Microsoft Corporation Java™ and all Java-based trademarks and logos Sun Microsystems, Inc. UNIX® X/Open Company Limited ii SB/XA Getting Started The above trademarks are property of the specified companies in the United States, other countries, or both. All other products or services mentioned in this document may be covered by the trademarks, service marks, or product names as designated by the companies who own or market them. License agreement This software and the associated documentation are proprietary and confidential to Rocket Software, Inc., are furnished under license, and may be used and copied only in accordance with the terms of such license and with the inclusion of the copyright notice.
    [Show full text]
  • Types and Programming Languages by Benjamin C
    < Free Open Study > . .Types and Programming Languages by Benjamin C. Pierce ISBN:0262162091 The MIT Press © 2002 (623 pages) This thorough type-systems reference examines theory, pragmatics, implementation, and more Table of Contents Types and Programming Languages Preface Chapter 1 - Introduction Chapter 2 - Mathematical Preliminaries Part I - Untyped Systems Chapter 3 - Untyped Arithmetic Expressions Chapter 4 - An ML Implementation of Arithmetic Expressions Chapter 5 - The Untyped Lambda-Calculus Chapter 6 - Nameless Representation of Terms Chapter 7 - An ML Implementation of the Lambda-Calculus Part II - Simple Types Chapter 8 - Typed Arithmetic Expressions Chapter 9 - Simply Typed Lambda-Calculus Chapter 10 - An ML Implementation of Simple Types Chapter 11 - Simple Extensions Chapter 12 - Normalization Chapter 13 - References Chapter 14 - Exceptions Part III - Subtyping Chapter 15 - Subtyping Chapter 16 - Metatheory of Subtyping Chapter 17 - An ML Implementation of Subtyping Chapter 18 - Case Study: Imperative Objects Chapter 19 - Case Study: Featherweight Java Part IV - Recursive Types Chapter 20 - Recursive Types Chapter 21 - Metatheory of Recursive Types Part V - Polymorphism Chapter 22 - Type Reconstruction Chapter 23 - Universal Types Chapter 24 - Existential Types Chapter 25 - An ML Implementation of System F Chapter 26 - Bounded Quantification Chapter 27 - Case Study: Imperative Objects, Redux Chapter 28 - Metatheory of Bounded Quantification Part VI - Higher-Order Systems Chapter 29 - Type Operators and Kinding Chapter 30 - Higher-Order Polymorphism Chapter 31 - Higher-Order Subtyping Chapter 32 - Case Study: Purely Functional Objects Part VII - Appendices Appendix A - Solutions to Selected Exercises Appendix B - Notational Conventions References Index List of Figures < Free Open Study > < Free Open Study > Back Cover A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute.
    [Show full text]
  • A High-Level Programming Language for Multimedia Streaming
    Liquidsoap: a High-Level Programming Language for Multimedia Streaming David Baelde1, Romain Beauxis2, and Samuel Mimram3 1 University of Minnesota, USA 2 Department of Mathematics, Tulane University, USA 3 CEA LIST – LMeASI, France Abstract. Generating multimedia streams, such as in a netradio, is a task which is complex and difficult to adapt to every users’ needs. We introduce a novel approach in order to achieve it, based on a dedi- cated high-level functional programming language, called Liquidsoap, for generating, manipulating and broadcasting multimedia streams. Unlike traditional approaches, which are based on configuration files or static graphical interfaces, it also allows the user to build complex and highly customized systems. This language is based on a model for streams and contains operators and constructions, which make it adapted to the gen- eration of streams. The interpreter of the language also ensures many properties concerning the good execution of the stream generation. The widespread adoption of broadband internet in the last decades has changed a lot our way of producing and consuming information. Classical devices from the analog era, such as television or radio broadcasting devices have been rapidly adapted to the digital world in order to benefit from the new technologies available. While analog devices were mostly based on hardware implementations, their digital counterparts often consist in software implementations, which po- tentially offers much more flexibility and modularity in their design. However, there is still much progress to be done to unleash this potential in many ar- eas where software implementations remain pretty much as hard-wired as their digital counterparts.
    [Show full text]
  • Managing Files with Sterling Connect:Direct File Agent 1.4.0.1
    Managing Files with Sterling Connect:Direct File Agent 1.4.0.1 IBM Contents Managing Files with Sterling Connect:Direct File Agent.......................................... 1 Sterling Connect:Direct File Agent Overview.............................................................................................. 1 How to Run Sterling Connect:Direct File Agent.......................................................................................... 2 Sterling Connect:Direct File Agent Logging.................................................................................................3 Sterling Connect:Direct File Agent Configuration Planning........................................................................ 3 Sterling Connect:Direct File Agent Worksheet ...........................................................................................4 Considerations for a Large Number of Watch Directories.......................................................................... 6 Modifying MaxFileSize............................................................................................................................ 6 Modifying MaxBackupIndex...................................................................................................................6 Considerations for a Large Number of Files in a Watch Directory..............................................................7 Sterling Connect:Direct File Agent Configuration Scenarios...................................................................... 7 Scenario:Detecting
    [Show full text]
  • Dot at Command Firmware Release 4.0.0 Release 3.3.5
    Product Change Notification Software Release Notes Dot AT Command Firmware Release 4.0.0 Release 3.3.5 MultiTech xDot® MultiTech mDot™ Date: March 30, 2021 Contents Product Change Notification (PCN) Number PCN 03302021-001 (Dot) I. Overview II. Suggested Action Plan I. Overview MultiTech announces the availability of new AT Command III. Release 4.0.0 Overview Firmware for use on MultiTech® Long Range LoRa® Modules: MultiTech xDot® (MTXDOT Series) IV. Release 3.3.5 Overview MultiTech mDot™ (MTDOT Series) V. Schedule New versions are currently available for download and VI. Flashing mDot Firmware evaluation: VII. Part Numbers Impacted Release 4.0.0 (shipping in June 2021) Release 3.3.5 VIII. Mbed OS Overview IX. xDot Overview Release 4.0.0 will released into standard MultiTech product starting in June 2021. Currently, product ships with X. mDot Overview Release 3.2.1 XI. xDot Micro Developer Kit II. Suggested Action Plan XII. Additional Information Customers Review the information in this PCN and forward to Attachments others within your organization who are actively Identifying Firmware Version involved with the development of IoT applications using the MultiTech xDot and MultiTech mDot. Identifying Date of Manufacture Consider downloading the firmware available on MultiTech or Mbed websites to check compatibility mPower & mLinux Software with existing deployments. PCN 03302021-001 (Dot) Page 1 of 12 https://support.multitech.com Review the release schedule for the upcoming firmware release and understand the effect on your manufacturing and deployment schedules. Distributors Forward this announcement to others within your organization who are actively involved in the sale or support of LoRa-enabled sensors.
    [Show full text]
  • Dell EMC Powerstore CLI Guide
    Dell EMC PowerStore CLI Guide May 2020 Rev. A01 Notes, cautions, and warnings NOTE: A NOTE indicates important information that helps you make better use of your product. CAUTION: A CAUTION indicates either potential damage to hardware or loss of data and tells you how to avoid the problem. WARNING: A WARNING indicates a potential for property damage, personal injury, or death. © 2020 Dell Inc. or its subsidiaries. All rights reserved. Dell, EMC, and other trademarks are trademarks of Dell Inc. or its subsidiaries. Other trademarks may be trademarks of their respective owners. Contents Additional Resources.......................................................................................................................4 Chapter 1: Introduction................................................................................................................... 5 Overview.................................................................................................................................................................................5 Use PowerStore CLI in scripts.......................................................................................................................................5 Set up the PowerStore CLI client........................................................................................................................................5 Install the PowerStore CLI client..................................................................................................................................
    [Show full text]
  • The Sitcom | Arts & Entertainment in Spokane Valley, WA | Mainvest
    3/18/2021 Invest in Selling Seattle- The Sitcom | Arts & Entertainment in Spokane Valley, WA | Mainvest ls dashboard | Print to text | View investment opportunities on Mainvest Edit Profile Watch this investment opportunity Share Selling Seattle- The Sitcom Arts & Entertainment 17220 E Mansfield Ave Spokane Valley, WA 99016 Get directions Coming Soon View Website Profile Data Room Discussion This is a preview. It will become public when you start accepting investment. THE PITCH Selling Seattle- The Sitcom is seeking investment to produce one or two episodes. Generating Revenue This is a preview. It will become public when you start accepting investment. Early Investor Bonus: The investment multiple is increased to 20 for the next $200,000 invested. This is a preview. It will become public when you start accepting investment. SELLING SEATTLE IS? Play 0000 0107 Mute Settings Enter fullscreen Play Who or What is Michael? This is a preview. It will become public when you start accepting investment. OUR STORY "Selling Seattle" is a smart broad comedy in the vein of "Seinfeld" and "Arrested Development". We are working with the video production company North by Northwest to produce the pilot and the second episode in Spokane, Washington this spring. We plan to stream episodes on the internet with commercials in a thirty-minute format. With cash flow from the pilot and second episode we will produce four to six episodes this fall and at least twelve episodes next year. The money raised through Mainvest will be used to produce the first one or two episodes of Selling Seattle and for advertising costs, office expenses and an income for Jim McGuffin not to exceed $15,000 per episode.
    [Show full text]
  • Red Hat Jboss Data Grid 7.2 Data Grid for Openshift
    Red Hat JBoss Data Grid 7.2 Data Grid for OpenShift Developing and deploying Red Hat JBoss Data Grid for OpenShift Last Updated: 2019-06-10 Red Hat JBoss Data Grid 7.2 Data Grid for OpenShift Developing and deploying Red Hat JBoss Data Grid for OpenShift Legal Notice Copyright © 2019 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent.
    [Show full text]
  • Shell Variables
    Shell Using the command line Orna Agmon ladypine at vipe.technion.ac.il Haifux Shell – p. 1/55 TOC Various shells Customizing the shell getting help and information Combining simple and useful commands output redirection lists of commands job control environment variables Remote shell textual editors textual clients references Shell – p. 2/55 What is the shell? The shell is the wrapper around the system: a communication means between the user and the system The shell is the manner in which the user can interact with the system through the terminal. The shell is also a script interpreter. The simplest script is a bunch of shell commands. Shell scripts are used in order to boot the system. The user can also write and execute shell scripts. Shell – p. 3/55 Shell - which shell? There are several kinds of shells. For example, bash (Bourne Again Shell), csh, tcsh, zsh, ksh (Korn Shell). The most important shell is bash, since it is available on almost every free Unix system. The Linux system scripts use bash. The default shell for the user is set in the /etc/passwd file. Here is a line out of this file for example: dana:x:500:500:Dana,,,:/home/dana:/bin/bash This line means that user dana uses bash (located on the system at /bin/bash) as her default shell. Shell – p. 4/55 Starting to work in another shell If Dana wishes to temporarily use another shell, she can simply call this shell from the command line: [dana@granada ˜]$ bash dana@granada:˜$ #In bash now dana@granada:˜$ exit [dana@granada ˜]$ bash dana@granada:˜$ #In bash now, going to hit ctrl D dana@granada:˜$ exit [dana@granada ˜]$ #In original shell now Shell – p.
    [Show full text]
  • Application for New Or Duplicate License Plates
    APPLICATION FOR NEW OR DUPLICATE LICENSE PLATES APPLICANT AND VEHICLE INFORMATION Owner(s) Name Daytime Phone Number ( ) - Mailing Address City State ZIP Vehicle Make Model Year VIN Body Style Original License Plate Number Expiration Date Number of Plate(s) lost, stolen, destroyed Plate(s) Surrendered STEP STEP #1 If license plate(s) cannot be surrendered because they are lost or stolen, duplicate license plates (plates that are reproduced with the same plate number) cannot be displayed on the vehicle until the validation stickers on the original plates have expired. This form cannot be used to replace lost, damaged, or mutilated embossed plates. You must reapply for embossed plates using the form MV-145. In case of lost, damaged or mutilated plates, a new or duplicate license plate and registration certificate will be issued by the County Treasurer. Damaged or mutilated license plates must be surrendered to the County Treasurer when you receive your new license plates. The fee to obtain a replacement license plate is eight dollars ($8.00), made payable to the County Treasurer. A replacement plate is the next available consecutive plate. The fee to obtain a duplicate license plate is thirty dollars ($30.00), made payable to the County Treasurer. A duplicate plate is the plate with the same number or combination that you currently have; WYDOT will reproduce your plate. Please note the following plates are the ONLY license plates that can be remade: Prestige, all types of Specialty Plates and preferred number series plates. Preferred number series in each county are determined by the County Treasurer, but will not exceed 9,999.
    [Show full text]
  • DOT Series at Command Reference Guide DOT SERIES at COMMAND GUIDE
    DOT Series AT Command Reference Guide DOT SERIES AT COMMAND GUIDE DOT Series AT Command Guide Models: MTDOT-915-xxx, MTDOT-868-xxx, MTXDOT-915-xx, MTXDOT-898-xx, Part Number: S000643, Version 2.2 Copyright This publication may not be reproduced, in whole or in part, without the specific and express prior written permission signed by an executive officer of Multi-Tech Systems, Inc. All rights reserved. Copyright © 2016 by Multi-Tech Systems, Inc. Multi-Tech Systems, Inc. makes no representations or warranties, whether express, implied or by estoppels, with respect to the content, information, material and recommendations herein and specifically disclaims any implied warranties of merchantability, fitness for any particular purpose and non- infringement. Multi-Tech Systems, Inc. reserves the right to revise this publication and to make changes from time to time in the content hereof without obligation of Multi-Tech Systems, Inc. to notify any person or organization of such revisions or changes. Trademarks and Registered Trademarks MultiTech, and the MultiTech logo, and MultiConnect are registered trademarks and mDot, xDot, and Conduit are a trademark of Multi-Tech Systems, Inc. All other products and technologies are the trademarks or registered trademarks of their respective holders. Legal Notices The MultiTech products are not designed, manufactured or intended for use, and should not be used, or sold or re-sold for use, in connection with applications requiring fail-safe performance or in applications where the failure of the products would reasonably be expected to result in personal injury or death, significant property damage, or serious physical or environmental damage.
    [Show full text]
  • Rexx Hands-On Lab
    1 2 Welcome to the Introduction to Rexx Hands-on Lab. This lab will cover a series of topics about the Rexx language. At the end of each topic, there will be exercises that use the concepts covered in the charts and text for that topic. The solutions for the exercises are in Appendix A. This is not a graded class or lab so you are free to refer to the solutions if you would like or if you need help with any of the exercises. Also, if you need assistance with any of the lab material or exercises, please raise your hand and someone will come to assist you. 3 These are the exercises that you will be doing today. There are 2 PDF files on your desktop that you might find helpful as you work on the exercises: • REXX Reference will help you with statement syntax and usage • Appendix H is a summary of XEDIT commands that might be helpful when you are writing and updating your Rexx programs 4 This section introduces the Rexx Language and explains how to create and execute Rexx programs on z/VM and TSO systems. It also includes some z/VM hints to help you with today's exercises. 5 REXX is a nickname for Restructured eXtended eXecutor. The Rexx language was designed to be intuitive, easy to read, and easy to follow a program's logic. Rexx programs can be very simple, ranging from personal tools and utilities such as "scripts" of commands that you might run every day to set up your system or run test cases, to very complex programs that might be part of a licensed product.
    [Show full text]