Two forms of GAL are available. The first is General Automation Language for device automation and the second is Generalized Automation Language (GAL) which a very high level programming language for MVS based systems such as OS/390 and z/OS.
Developed by iLED to provide a common language for standardising automation and control of devices in the residential (Home Automation) and commercial control environments. The language provides a standardised method of communicating to/from controlled/controlling devices. At each device, GAL is converted into the machine specific protocol and medium. An example is the control of a DVD player. The GAL command will be <MyHouse MyArea MyRoom MyDevice MyCommand> FredsHouse GroundFloor Lounge DVDplayer ON
. The GAL device will then convert this to the discrete IR command to switch on the DVD Player. [1]
Developed by Expans Systems to provide features and constructs that enable the programmer to intercept systems events and schedule responses, as implemented via their product AutoMan. Somewhat akin to BASIC, GAL enables systems programmers and operators to define logic to apply to systems messages as they flow through a multi-system (sysplex) environment. GAL also enables the programmer to define events that have occurred in the past, by intercepting Action Message Retention Facility (AMRF) messages. The language has built-in constructs to obtain the age of a retained message and make decisions about its fate depending on age. GAL can be used to write new systems commands, by intercepting and interpreting anything that is entered into an Operator Console. GAL uses keywords such as names of days of the week, names of month etc. to automatically schedule events in the system. Like REXX, GAL is both an interpretive language and a compiled language. GAL statements can be entered to the interpreter on the fly, or entire automation scenarios can be predefined, such as the logic to define unattended operations of a system, and can be compiled offline, using the compiler program GALCOMP.
GAL implements comparison by IF statements, setting of variables, by the LET statement and subroutine calls. GAL allows the programmer to break into REXX, and Assembler where it is needed. The very high level nature of GAL is exemplified by the EMAIL statement, which enables the programmer to send an email alert when an event is detected that requires human intervention. Assuming that this message event requires an alert to be sent to a default recipient:
MSG=XID999S VAR &MSGTXT LEN 100 LET &MSGTXT = $$MSGTXT EMAIL SUBJECT '&MSGTXT' 'This is a problem that needs urgent attention'
GAL uses text capture and replacement facilities. In this simple example, the text of the system message is captured into a variable and the text in that variable is then used as the subject of the email. The message in the body of the email is the text in quotes following the subject.
GAL allows for cross systems(IBM XCF) queries to be issued by simple IF statements, without regard for the underlying internal processes required to perform the cross systems communications. It is simply a matter of identifying one or more systems that are to be tested.
For instance to check if a job is currently running in a partner system:
IF SYS=sysn JOB(jobname) ACTIVE DO . . . END
GW-BASIC is a dialect of the BASIC programming language developed by Microsoft from IBM BASICA. Functionally identical to BASICA, its BASIC interpreter is a fully self-contained executable and does not need the Cassette BASIC ROM found in the original IBM PC. It was bundled with MS-DOS operating systems on IBM PC compatibles by Microsoft.
In computer programming, a macro is a rule or pattern that specifies how a certain input should be mapped to a replacement output. Applying a macro to an input is known as macro expansion. The input and output may be a sequence of lexical tokens or characters, or a syntax tree. Character macros are supported in software applications to make it easy to invoke common command sequences. Token and tree macros are supported in some programming languages to enable code reuse or to extend the language, sometimes for domain-specific languages.
PL/I is a procedural, imperative computer programming language initially developed by IBM. The PL/1 ANSI standard, X3.53-1976, was published in 1976. It is designed for scientific, engineering, business and system programming. It has been in continuous use by academic, commercial and industrial organizations since it was introduced in the 1960s.
VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers without error handling and with subroutines and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.
HyperTalk is a discontinued high-level, procedural programming language created in 1987 by Dan Winkler and used in conjunction with Apple Computer's HyperCard hypermedia program by Bill Atkinson. Because the main target audience of HyperTalk was beginning programmers, HyperTalk programmers were usually called "authors" and the process of writing programs was known as "scripting". HyperTalk scripts resembled written English and used a logical structure similar to that of the Pascal programming language.
AppleScript is a scripting language created by Apple Inc. that facilitates automated control over scriptable Mac applications. First introduced in System 7, it is currently included in all versions of macOS as part of a package of system automation tools. The term "AppleScript" may refer to the language itself, to an individual script written in the language, or, informally, to the macOS Open Scripting Architecture that underlies the language.
A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can be combined to accomplish a task, much as one might use multiple hands to fix a physical object. The most basic tools are a source code editor and a compiler or interpreter, which are used ubiquitously and continuously. Other tools are used more or less depending on the language, development methodology, and individual engineer, often used for a discrete task, like a debugger or profiler. Tools may be discrete programs, executed separately – often from the command line – or may be parts of a single large program, called an integrated development environment (IDE). In many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool, such as print debugging instead of using a debugger, manual timing instead of a profiler, or tracking bugs in a text file or spreadsheet instead of a bug tracking system.
RPG is a high-level programming language for business applications, introduced in 1959 for the IBM 1401. It is most well known as the primary programming language of IBM's midrange computer product line, including the IBM i operating system. RPG has traditionally featured a number of distinctive concepts, such as the program cycle, and the column-oriented syntax. The most recent version is RPG IV, which includes a number of modernization features, including free-form syntax.
XEDIT is a visual editor for VM/CMS using block mode IBM 3270 terminals.
MBASIC is the Microsoft BASIC implementation of BASIC for the CP/M operating system. MBASIC is a descendant of the original Altair BASIC interpreters that were among Microsoft's first products. MBASIC was one of the two versions of BASIC bundled with the Osborne 1 computer. The name "MBASIC" is derived from the disk file name MBASIC.COM of the BASIC interpreter.
Teleprocessing Network Simulator (TPNS) is an IBM licensed program, first released in 1976 as a test automation tool to simulate the end-user activity of network terminal(s) to a mainframe computer system, for functional testing, regression testing, system testing, capacity management, benchmarking and stress testing.
CMS EXEC, or EXEC, is an interpreted, command procedure control, computer scripting language used by the CMS EXEC Processor supplied with the IBM Virtual Machine/Conversational Monitor System (VM/CMS) operating system.
A batch file is a script file in DOS, OS/2 and Microsoft Windows. It consists of a series of commands to be executed by the command-line interpreter, stored in a plain text file. A batch file may contain any command the interpreter accepts interactively and use constructs that enable conditional branching and looping within the batch file, such as IF
, FOR
, and GOTO
labels. The term "batch" is from batch processing, meaning "non-interactive execution", though a batch file might not process a batch of multiple data.
AutoMan is a series of software implementations used both for job scheduling and console operations automation for z/OS. These implementations range from simple scheduling to complex cross systems, monitoring and scheduling.
A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.
Rexx is a programming language that can be interpreted or compiled. It was developed at IBM by Mike Cowlishaw. It is a structured, high-level programming language designed for ease of learning and reading. Proprietary and open source Rexx interpreters exist for a wide range of computing platforms; compilers exist for IBM mainframe computers.
PL/SQL is Oracle Corporation's procedural extension for SQL and the Oracle relational database. PL/SQL is available in Oracle Database, Times Ten in-memory database, and IBM Db2. Oracle Corporation usually extends PL/SQL functionality with each successive release of the Oracle Database.
Cisco Embedded Event Manager (EEM) is a feature included in Cisco's IOS operating system that allow programmability and automation capabilities inside the device. EEM allows the behavior of a Cisco device to adapt to specific user requirements by allowing scripting, thresholding, proactive actions, data collection and event management inside the Cisco device itself. Using EEM, problems can be identified and resolved automatically in advance by setting event triggers to watch for specific types of situations or thresholds, or run a set of actions periodically.
Tcl is a high-level, general-purpose, interpreted, dynamic programming language. It was designed with the goal of being very simple but powerful. Tcl casts everything into the mold of a command, even programming constructs like variable assignment and procedure definition. Tcl supports multiple programming paradigms, including object-oriented, imperative, functional, and procedural styles.