SlideShare a Scribd company logo
1 of 8
Download to read offline
Ada COi{PILER SYSTEi! SSAdaP
Jan ltolý
Kancelářské stroje, o.p.
Prague, Czechoslovakia
ABSTRAcT
SSAdaP (Support System for Ada Programmers)
is a programming environment for creaLing,
compíling (and cross-compiling), 1inking and
symbolic debugging of Ada programs. It is
universal, multi-host and mulLi-target
system, originally developed under VAX./VMS
and spread Lo other computers and operating
systems. At present, versions for tro hosts
and targeLs are available - VAX/VI{S and
rBillOS. Versions for UNIX on VAX and IBlí
mainframes aFe in development and others are
prepared.
Naturally, accepted language corresponrls Lo
Ada ISO./ANSI standard. Ve Lried Lo avoid
even allored restricLions on language, which
is true for represenLation specifications.
Generics processing is solved rithout ofLen
used simplifications, too. Package for
unlimited precision arithmetic is support-ed.
System SSAdaP has been developed in SzKI
BudapesL (Hungary) in cooperaLion with
Kancelářské stroje Pra6ue. Vhile Lhis is Lhe
first and only implementation of full Ada
language in Eastern Europe, it is supposed
to be spread ridely.
l
USrNG SSAdaP
Installinr SSAdaP
System SSAdaP is disLributed on magneLic tape. User can choose:
sysLem ride installation
single user installation
inst.allation for group
GeneraLinR Emptv Library
$ genenpty
directory { t . LrB] }: user_Z tbrcry
Define User : user_ncrne
Give target computer { rBI'í, VAX} t VAX] : t cr6et _cořnput er
Define User :
:
Directory specified as ilser_l žbrcry musL be already created.
Users
Users in Lhe SSAdaP library are hierarchicaly ordered. The Lop
Ievel super user is called Ada and has special- privileges" Each
user can create his orn subordinaLes. There are 3 predefined
categories of users:
- beginner
- advanced
- mast-er
Versions_and Conf i*urat ions
Various versions of compilation uniLs can be stored in Lhe
library upon user's demand. Compilation units can be also
grouped inLo seťs called confi5urations.
rnvokin< SSAdaP
$ ssadap
: : ctlnnect user_l tbrcry
: : login user_nc,me user^J)ossuord
I
I
I
I
l
l
I
I
I
I
I
l
I
I
I
I
I
I
I
I
I
Compilation and linkin* phases
phase unit after the phase
syntactic analysis
semantic analysis
abstracL code generation
concreLe code generation
linking program
Executinr Linked proeiram
Program is executed in operating
either leave SSAdaP, or use the
ent ered; preliminary
accepLed
transformect
compi}ed
l inked
system environment.
host command.
You can
SSAdaP COH}íAIIDS
command svntax
command parana7- param2 . . . /optiont/option2/. .
commands can be labeled (label is an idenLifier)
lcbel: command
Ootions alLer the behaviour of Lhe system;
/op t žon_ncme=op t žon _ua L ue
or in shorLened form:
/opt žon-ual ue
Hyphen (-) as the last character indicates the
Lhe line.
continuation of
Comments sLart rith exclamation mark (!), they conLinue till Lhe
end of line.
command procedures
Command procedures are sequences of commands. They can contain
formal parameters, rhich are refered as 'pí', 'p2' etc.
Procedure is invoked by its name and evenLual actual parameters.
coMlíAt{Ds ovERYrEH
EnLerinE and Leaving SSAdaP
library
user
user environment without leaving library
exit SSAdaP
login another user temporary (only for reading)
ent er operating system environment nithout leaving
SSAdaP (reLurn back using DCL command $[ogout)
Pro€ram Translation
COlfťect
LOGin
LEave
Bye
Visi t
HOst
CO!ípile
El{ter
SE}tantic
Allalyse
ABstract
COIfCrete
GEI{eric
COl{tinue
RECorpile
LII{k
Lrst
llIstory
HElp
REAd
Tree
rnformations
Drr
SHor
- enlists
Corplete
Depend_on
OI{_error
OPtion
Syster
USED_by
llsER
variables
l
lt
J
lI
ll
lt
a
l
a
entire compilation of source file
syntactic analysis
semantic analysis
syntactic & semanLic analysis
abstract code generation
concrete code generat-ion
generation of insťance bodies
compleLion of inLerrupted compilation
aIl obsolete units
main program
1ibrary conlents
- all units related to given main
program
- all units depending on given unit
- value of the on_error system variable
- actual values of options
- current database & users
- all units using given unit ( in with
clause)
- LOGIN and VISrTed users
- actrral values of variables
l
l
l
I
I
I
l
t
- source Lext & errors or cross references listing
- user commands stack
- Lhe most useful command
- messates (created by SENd) and deleLe Lhem
list semantic tree (for developers and distribuLors
only)
^2
list M intermediate code (for deveIopers and
distribuLors only)
copy source file from the database into an exLernal
file
SOUrce
Reductions
DElete
FORget
PURge
library enLities
- history elements (see
- clearing up database,
HTstory)
deleting unidenLified units
l,íodif icaLions
sET
CReate
EValuate
sEI{d
COPy
EDit
Clíange
REIfare
soRt
- option values
Definition
Proc
User
protection
VAlidity
- create configuration
- create command procedure
- creaLe neg subordinate user
- name of the definition
- message to the user (use REAd for reading)
- configuration or command procedure
invoke operating system ediLor
PAssrord - of user
PRedefinedness - for super user only
- of unit
- seL Lhe expiration of SSAdaP system
(for super user only)
VTsibility - of unit
- command procedure or definition set (configuration)
- units as a perfect order of compilation
Conlrol SLaLements
These commands are used namely in command procedures.
Assi€nmenL sLatement:
ucria,ble := expression
variables can be indexed or sliced. values of
predefined variables can be set only by SSAdaP:
these Lro
EOF - set in function FGet
EXSTAT - set aťLer each command execuLion (error status)
ExDression value is alrays string.
l
Fol 1owing
avai 1able:
string manipulation predeťined funcťions are
parts of string
returns the actual date
subsLring
check string for all letters
check string ťor all digiLs
check string ťor all spaces
of sťring
conversion to lorer case characters
compape strings
returns the acLual time <"12:34:5ó")
conversion to upper case characters
l
l
l
l
l
l
l
l
l
l
8change
tdate
Efind
3is_alpha
Eis_dígit
tis_space
Slength
8lower
tnatch
$tire
Supper
Conditiona1 statemenL:
if condt tion then commond
Error condiLion sťaLement:
oll_error comnrcnd
Specified corrmcnd is executed in
subsequent commands.
@:
goto lcbel
Text Files r/O
FCReate
FOPen
FGet
FPut
FCLose
Terminal r/O
GET
PUT
case oť error occurance
l
l
l
l
l
l
l
l
l
t
1n
DEBUGGrxG PRoGRAI§
S^DE (Symbolic Ada_PEbugger) is a tool for t,racing program
act,ivities and resLricted data modificaLions on Lhe so|,lrce Ada
language level. Debug option must be seL to non-zero value for
compilation and linking.
DebuR€er Commands
Break
CAlícet
Deposite
EXArine
ExIt
Go
llelp
Input
Line_rcde
Output
Refresh_screen
SCope
Screen_mde
Scroll
Sllor
Spavn
STep
- set breakpoint
- cancel breakpoint
- modify objecL value
- objeci value
- debugger SADE; CTRLaZ may be usecl instead
- conLinue program execution
- again the most useful command
- set debugger input device
- seL line mode
- set debugger output device
- CTRL/i may be used inst.ead
- seL scope
- seL screen mode
- screen up, dorn, left, righť
Breakpoints
Calls
Corpilation_units
Scope
Tasks
- execute DCL command
- program execution control
rnplEltEtrT^Tlolí DEPEilDEltT FEAtuREs
standard praemas
Pragmas CONTROLLED, SHARED, STORAGE_UNrT, ilEIíORY_SIZE a
SYSTEIí_NA}íE are ignored. The effect of the last Lro mentioned
pragmas can be obtained using SSAdaP runLime system commands.
STORAGE_UNIT is preseL to 8 and cannot be modified_ Pragma
rNTERFACE provides binding to !íACRO32 and VAX C at présent.
rmplement-at,ion Dependent pragmas
praema ALIGNLESS (type_simple_name) ;
-- objects of the given scalar type can be placed on any
-- alignment, inclusiv biL alignment
Dragma BOR.DER;
-- separates compilalion uniLs explicitly
Data Tvoes Representation
type byte renark
enumeration
SHoRT_rNTEGER
INTEGER
LONG_INTECER
SHORT_FLOAT
FLoAT
LoNG_FLoAT
access
task
fixed
length
L
1
2
1,
B
L
8
t6
L
1,
L
1,
byte in the range O..255 or -í28..727
longword in oLher cases
rord
longrord
quadword
F-FLoATING
G-FLoATING
H-FLoATrNG
longrord
1ongrord
1ongrord
longrord
SSAdaP rHPLElíEI{TAfiOt{ AIHS
The main part of this system has been written in Ada. Except
runtime system and debugger, lhich have been rritten in
macroassembler, only fer hundreds of lines are in it from more
than 2OO OOO lines. This allows t,he high-level portability Lo
oLher computers and operaLing systems. rn UNrX versions,
macroassembler is beeing replaced by C language.
BIBLrOGRAPHY
I
t
I
l
I
I
I
t
!
I
l
l
l
l
ll
I
I
I
l
l
t1 l Vladík,
í21 SSAdaP
t3l SSAdaP
J. : Ada/EC/Slí - uživatelská příručka pro Sl,í 52/t2
VOS 4; Kancelářské sťroje Praha L9a9
Users l,íanual; SzKI Budapesť 19a9
System Programmers ltíanual; SzKr Budapest t989

More Related Content

What's hot

Setup Java Path and classpath (from the java™ tutorials essential classes -...
Setup Java Path and classpath (from the java™ tutorials   essential classes -...Setup Java Path and classpath (from the java™ tutorials   essential classes -...
Setup Java Path and classpath (from the java™ tutorials essential classes -...Louis Slabbert
 
Performance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, HowPerformance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, HowKaren Morton
 
11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilar11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilarrehaniltifat
 
Mainframe JCL Part - 1
Mainframe JCL Part - 1Mainframe JCL Part - 1
Mainframe JCL Part - 1janaki ram
 
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...rehaniltifat
 
Oracle sql & plsql
Oracle sql & plsqlOracle sql & plsql
Oracle sql & plsqlSid Xing
 
PL-SQL DIFFERENT PROGRAMS
PL-SQL DIFFERENT PROGRAMSPL-SQL DIFFERENT PROGRAMS
PL-SQL DIFFERENT PROGRAMSraj upadhyay
 
Advanced REXX Programming Techniques
Advanced REXX Programming TechniquesAdvanced REXX Programming Techniques
Advanced REXX Programming TechniquesDan O'Dea
 
Db Triggers05ch
Db Triggers05chDb Triggers05ch
Db Triggers05chtheo_10
 
09 Managing Dependencies
09 Managing Dependencies09 Managing Dependencies
09 Managing Dependenciesrehaniltifat
 

What's hot (16)

Oracle: Procedures
Oracle: ProceduresOracle: Procedures
Oracle: Procedures
 
Setup Java Path and classpath (from the java™ tutorials essential classes -...
Setup Java Path and classpath (from the java™ tutorials   essential classes -...Setup Java Path and classpath (from the java™ tutorials   essential classes -...
Setup Java Path and classpath (from the java™ tutorials essential classes -...
 
Performance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, HowPerformance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, How
 
11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilar11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilar
 
Mainframe JCL Part - 1
Mainframe JCL Part - 1Mainframe JCL Part - 1
Mainframe JCL Part - 1
 
ORACLE PL SQL
ORACLE PL SQLORACLE PL SQL
ORACLE PL SQL
 
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
 
Oracle sql & plsql
Oracle sql & plsqlOracle sql & plsql
Oracle sql & plsql
 
PLSQL
PLSQLPLSQL
PLSQL
 
PL-SQL DIFFERENT PROGRAMS
PL-SQL DIFFERENT PROGRAMSPL-SQL DIFFERENT PROGRAMS
PL-SQL DIFFERENT PROGRAMS
 
Assembler
AssemblerAssembler
Assembler
 
Assembler
AssemblerAssembler
Assembler
 
Advanced REXX Programming Techniques
Advanced REXX Programming TechniquesAdvanced REXX Programming Techniques
Advanced REXX Programming Techniques
 
Db Triggers05ch
Db Triggers05chDb Triggers05ch
Db Triggers05ch
 
09 Managing Dependencies
09 Managing Dependencies09 Managing Dependencies
09 Managing Dependencies
 
Plsql les04
Plsql les04Plsql les04
Plsql les04
 

Viewers also liked

Výběr IS metodou RISE I
Výběr IS metodou RISE IVýběr IS metodou RISE I
Výběr IS metodou RISE IJan Holy
 
HP hot paper RISE
HP hot paper RISEHP hot paper RISE
HP hot paper RISEJan Holy
 
Poklad kapitána Flinta cardmag.cardzone.cz_archiv_cm4_2014
Poklad kapitána Flinta cardmag.cardzone.cz_archiv_cm4_2014Poklad kapitána Flinta cardmag.cardzone.cz_archiv_cm4_2014
Poklad kapitána Flinta cardmag.cardzone.cz_archiv_cm4_2014Jan Holy
 
Kouzelnicke noviny TT 2012 4
Kouzelnicke noviny TT 2012 4Kouzelnicke noviny TT 2012 4
Kouzelnicke noviny TT 2012 4Jan Holy
 
Výběr IS metodou RISE II
Výběr IS metodou RISE IIVýběr IS metodou RISE II
Výběr IS metodou RISE IIJan Holy
 
IC3 - CW 2012 8 - Jan Holy
IC3 - CW 2012 8 - Jan HolyIC3 - CW 2012 8 - Jan Holy
IC3 - CW 2012 8 - Jan HolyJan Holy
 
2015-11-06-Ada-Holy-Egeszsegedre-En
2015-11-06-Ada-Holy-Egeszsegedre-En2015-11-06-Ada-Holy-Egeszsegedre-En
2015-11-06-Ada-Holy-Egeszsegedre-EnJan Holy
 
Faktura ve vaší schránce bw1204
Faktura ve vaší schránce bw1204Faktura ve vaší schránce bw1204
Faktura ve vaší schránce bw1204Jan Holy
 
Ada dnes, Ada zítra
Ada dnes, Ada zítraAda dnes, Ada zítra
Ada dnes, Ada zítraJan Holy
 
Holy-Egeszsegedre
Holy-EgeszsegedreHoly-Egeszsegedre
Holy-EgeszsegedreJan Holy
 
isurus-cc-prezentacia-2016
isurus-cc-prezentacia-2016isurus-cc-prezentacia-2016
isurus-cc-prezentacia-2016Jan Holy
 

Viewers also liked (11)

Výběr IS metodou RISE I
Výběr IS metodou RISE IVýběr IS metodou RISE I
Výběr IS metodou RISE I
 
HP hot paper RISE
HP hot paper RISEHP hot paper RISE
HP hot paper RISE
 
Poklad kapitána Flinta cardmag.cardzone.cz_archiv_cm4_2014
Poklad kapitána Flinta cardmag.cardzone.cz_archiv_cm4_2014Poklad kapitána Flinta cardmag.cardzone.cz_archiv_cm4_2014
Poklad kapitána Flinta cardmag.cardzone.cz_archiv_cm4_2014
 
Kouzelnicke noviny TT 2012 4
Kouzelnicke noviny TT 2012 4Kouzelnicke noviny TT 2012 4
Kouzelnicke noviny TT 2012 4
 
Výběr IS metodou RISE II
Výběr IS metodou RISE IIVýběr IS metodou RISE II
Výběr IS metodou RISE II
 
IC3 - CW 2012 8 - Jan Holy
IC3 - CW 2012 8 - Jan HolyIC3 - CW 2012 8 - Jan Holy
IC3 - CW 2012 8 - Jan Holy
 
2015-11-06-Ada-Holy-Egeszsegedre-En
2015-11-06-Ada-Holy-Egeszsegedre-En2015-11-06-Ada-Holy-Egeszsegedre-En
2015-11-06-Ada-Holy-Egeszsegedre-En
 
Faktura ve vaší schránce bw1204
Faktura ve vaší schránce bw1204Faktura ve vaší schránce bw1204
Faktura ve vaší schránce bw1204
 
Ada dnes, Ada zítra
Ada dnes, Ada zítraAda dnes, Ada zítra
Ada dnes, Ada zítra
 
Holy-Egeszsegedre
Holy-EgeszsegedreHoly-Egeszsegedre
Holy-Egeszsegedre
 
isurus-cc-prezentacia-2016
isurus-cc-prezentacia-2016isurus-cc-prezentacia-2016
isurus-cc-prezentacia-2016
 

Similar to SSAdaP 1989 DECUS Europe Symposium Jan Holy

Virtual platform
Virtual platformVirtual platform
Virtual platformsean chen
 
Software Variability Management
Software Variability ManagementSoftware Variability Management
Software Variability ManagementXavierDevroey
 
imperative programming language, java, android
imperative programming language, java, androidimperative programming language, java, android
imperative programming language, java, androidi i
 
07 140430-ipp-languages used in llvm during compilation
07 140430-ipp-languages used in llvm during compilation07 140430-ipp-languages used in llvm during compilation
07 140430-ipp-languages used in llvm during compilationAdam Husár
 
BACKGROUND A shell provides a command-line interface for users. I.docx
BACKGROUND A shell provides a command-line interface for users. I.docxBACKGROUND A shell provides a command-line interface for users. I.docx
BACKGROUND A shell provides a command-line interface for users. I.docxwilcockiris
 
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...Orgad Kimchi
 
HSA HSAIL Introduction Hot Chips 2013
HSA HSAIL Introduction  Hot Chips 2013 HSA HSAIL Introduction  Hot Chips 2013
HSA HSAIL Introduction Hot Chips 2013 HSA Foundation
 
Different type of shells In Netapp Cluster mode 8.X and how to access them t...
Different type of shells In Netapp Cluster mode 8.X  and how to access them t...Different type of shells In Netapp Cluster mode 8.X  and how to access them t...
Different type of shells In Netapp Cluster mode 8.X and how to access them t...Saroj Sahu
 
Performance Tuning Using oratop
Performance Tuning Using oratop Performance Tuning Using oratop
Performance Tuning Using oratop Sandesh Rao
 
OpenERP Technical Memento V0.7.3
OpenERP Technical Memento V0.7.3OpenERP Technical Memento V0.7.3
OpenERP Technical Memento V0.7.3Borni DHIFI
 
OpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionOpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionEueung Mulyana
 
Performance Tuning Using oratop
Performance Tuning Using oratop Performance Tuning Using oratop
Performance Tuning Using oratop Sandesh Rao
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfSamHoney6
 
Open Source RAD with OpenERP 7.0
Open Source RAD with OpenERP 7.0Open Source RAD with OpenERP 7.0
Open Source RAD with OpenERP 7.0Quang Ngoc
 
Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)Gerard Braad
 
Juniper SRX Quickstart 12.1R3 by Thomas Schmidt
Juniper SRX Quickstart 12.1R3 by Thomas SchmidtJuniper SRX Quickstart 12.1R3 by Thomas Schmidt
Juniper SRX Quickstart 12.1R3 by Thomas SchmidtNam Nguyen
 
DB2 Systems Programming Tools of the Trade NA07B03
DB2 Systems Programming Tools of the Trade NA07B03DB2 Systems Programming Tools of the Trade NA07B03
DB2 Systems Programming Tools of the Trade NA07B03Linda Hagedorn
 

Similar to SSAdaP 1989 DECUS Europe Symposium Jan Holy (20)

Virtual platform
Virtual platformVirtual platform
Virtual platform
 
Software Variability Management
Software Variability ManagementSoftware Variability Management
Software Variability Management
 
imperative programming language, java, android
imperative programming language, java, androidimperative programming language, java, android
imperative programming language, java, android
 
07 140430-ipp-languages used in llvm during compilation
07 140430-ipp-languages used in llvm during compilation07 140430-ipp-languages used in llvm during compilation
07 140430-ipp-languages used in llvm during compilation
 
BACKGROUND A shell provides a command-line interface for users. I.docx
BACKGROUND A shell provides a command-line interface for users. I.docxBACKGROUND A shell provides a command-line interface for users. I.docx
BACKGROUND A shell provides a command-line interface for users. I.docx
 
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
 
HSA HSAIL Introduction Hot Chips 2013
HSA HSAIL Introduction  Hot Chips 2013 HSA HSAIL Introduction  Hot Chips 2013
HSA HSAIL Introduction Hot Chips 2013
 
Different type of shells In Netapp Cluster mode 8.X and how to access them t...
Different type of shells In Netapp Cluster mode 8.X  and how to access them t...Different type of shells In Netapp Cluster mode 8.X  and how to access them t...
Different type of shells In Netapp Cluster mode 8.X and how to access them t...
 
GCC RTL and Machine Description
GCC RTL and Machine DescriptionGCC RTL and Machine Description
GCC RTL and Machine Description
 
Performance Tuning Using oratop
Performance Tuning Using oratop Performance Tuning Using oratop
Performance Tuning Using oratop
 
OpenERP Technical Memento V0.7.3
OpenERP Technical Memento V0.7.3OpenERP Technical Memento V0.7.3
OpenERP Technical Memento V0.7.3
 
OpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionOpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - Introduction
 
Performance Tuning Using oratop
Performance Tuning Using oratop Performance Tuning Using oratop
Performance Tuning Using oratop
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdf
 
7986-lect 7.pdf
7986-lect 7.pdf7986-lect 7.pdf
7986-lect 7.pdf
 
Open Source RAD with OpenERP 7.0
Open Source RAD with OpenERP 7.0Open Source RAD with OpenERP 7.0
Open Source RAD with OpenERP 7.0
 
Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)
 
LINUX Device Drivers
LINUX Device DriversLINUX Device Drivers
LINUX Device Drivers
 
Juniper SRX Quickstart 12.1R3 by Thomas Schmidt
Juniper SRX Quickstart 12.1R3 by Thomas SchmidtJuniper SRX Quickstart 12.1R3 by Thomas Schmidt
Juniper SRX Quickstart 12.1R3 by Thomas Schmidt
 
DB2 Systems Programming Tools of the Trade NA07B03
DB2 Systems Programming Tools of the Trade NA07B03DB2 Systems Programming Tools of the Trade NA07B03
DB2 Systems Programming Tools of the Trade NA07B03
 

SSAdaP 1989 DECUS Europe Symposium Jan Holy

  • 1. Ada COi{PILER SYSTEi! SSAdaP Jan ltolý Kancelářské stroje, o.p. Prague, Czechoslovakia ABSTRAcT SSAdaP (Support System for Ada Programmers) is a programming environment for creaLing, compíling (and cross-compiling), 1inking and symbolic debugging of Ada programs. It is universal, multi-host and mulLi-target system, originally developed under VAX./VMS and spread Lo other computers and operating systems. At present, versions for tro hosts and targeLs are available - VAX/VI{S and rBillOS. Versions for UNIX on VAX and IBlí mainframes aFe in development and others are prepared. Naturally, accepted language corresponrls Lo Ada ISO./ANSI standard. Ve Lried Lo avoid even allored restricLions on language, which is true for represenLation specifications. Generics processing is solved rithout ofLen used simplifications, too. Package for unlimited precision arithmetic is support-ed. System SSAdaP has been developed in SzKI BudapesL (Hungary) in cooperaLion with Kancelářské stroje Pra6ue. Vhile Lhis is Lhe first and only implementation of full Ada language in Eastern Europe, it is supposed to be spread ridely. l
  • 2. USrNG SSAdaP Installinr SSAdaP System SSAdaP is disLributed on magneLic tape. User can choose: sysLem ride installation single user installation inst.allation for group GeneraLinR Emptv Library $ genenpty directory { t . LrB] }: user_Z tbrcry Define User : user_ncrne Give target computer { rBI'í, VAX} t VAX] : t cr6et _cořnput er Define User : : Directory specified as ilser_l žbrcry musL be already created. Users Users in Lhe SSAdaP library are hierarchicaly ordered. The Lop Ievel super user is called Ada and has special- privileges" Each user can create his orn subordinaLes. There are 3 predefined categories of users: - beginner - advanced - mast-er Versions_and Conf i*urat ions Various versions of compilation uniLs can be stored in Lhe library upon user's demand. Compilation units can be also grouped inLo seťs called confi5urations. rnvokin< SSAdaP $ ssadap : : ctlnnect user_l tbrcry : : login user_nc,me user^J)ossuord I I I I l l I I I I I l I I I I I I I I I
  • 3. Compilation and linkin* phases phase unit after the phase syntactic analysis semantic analysis abstracL code generation concreLe code generation linking program Executinr Linked proeiram Program is executed in operating either leave SSAdaP, or use the ent ered; preliminary accepLed transformect compi}ed l inked system environment. host command. You can SSAdaP COH}íAIIDS command svntax command parana7- param2 . . . /optiont/option2/. . commands can be labeled (label is an idenLifier) lcbel: command Ootions alLer the behaviour of Lhe system; /op t žon_ncme=op t žon _ua L ue or in shorLened form: /opt žon-ual ue Hyphen (-) as the last character indicates the Lhe line. continuation of Comments sLart rith exclamation mark (!), they conLinue till Lhe end of line. command procedures Command procedures are sequences of commands. They can contain formal parameters, rhich are refered as 'pí', 'p2' etc. Procedure is invoked by its name and evenLual actual parameters.
  • 4. coMlíAt{Ds ovERYrEH EnLerinE and Leaving SSAdaP library user user environment without leaving library exit SSAdaP login another user temporary (only for reading) ent er operating system environment nithout leaving SSAdaP (reLurn back using DCL command $[ogout) Pro€ram Translation COlfťect LOGin LEave Bye Visi t HOst CO!ípile El{ter SE}tantic Allalyse ABstract COIfCrete GEI{eric COl{tinue RECorpile LII{k Lrst llIstory HElp REAd Tree rnformations Drr SHor - enlists Corplete Depend_on OI{_error OPtion Syster USED_by llsER variables l lt J lI ll lt a l a entire compilation of source file syntactic analysis semantic analysis syntactic & semanLic analysis abstract code generation concrete code generat-ion generation of insťance bodies compleLion of inLerrupted compilation aIl obsolete units main program 1ibrary conlents - all units related to given main program - all units depending on given unit - value of the on_error system variable - actual values of options - current database & users - all units using given unit ( in with clause) - LOGIN and VISrTed users - actrral values of variables l l l I I I l t - source Lext & errors or cross references listing - user commands stack - Lhe most useful command - messates (created by SENd) and deleLe Lhem list semantic tree (for developers and distribuLors only)
  • 5. ^2 list M intermediate code (for deveIopers and distribuLors only) copy source file from the database into an exLernal file SOUrce Reductions DElete FORget PURge library enLities - history elements (see - clearing up database, HTstory) deleting unidenLified units l,íodif icaLions sET CReate EValuate sEI{d COPy EDit Clíange REIfare soRt - option values Definition Proc User protection VAlidity - create configuration - create command procedure - creaLe neg subordinate user - name of the definition - message to the user (use REAd for reading) - configuration or command procedure invoke operating system ediLor PAssrord - of user PRedefinedness - for super user only - of unit - seL Lhe expiration of SSAdaP system (for super user only) VTsibility - of unit - command procedure or definition set (configuration) - units as a perfect order of compilation Conlrol SLaLements These commands are used namely in command procedures. Assi€nmenL sLatement: ucria,ble := expression variables can be indexed or sliced. values of predefined variables can be set only by SSAdaP: these Lro EOF - set in function FGet EXSTAT - set aťLer each command execuLion (error status) ExDression value is alrays string.
  • 6. l Fol 1owing avai 1able: string manipulation predeťined funcťions are parts of string returns the actual date subsLring check string for all letters check string ťor all digiLs check string ťor all spaces of sťring conversion to lorer case characters compape strings returns the acLual time <"12:34:5ó") conversion to upper case characters l l l l l l l l l l 8change tdate Efind 3is_alpha Eis_dígit tis_space Slength 8lower tnatch $tire Supper Conditiona1 statemenL: if condt tion then commond Error condiLion sťaLement: oll_error comnrcnd Specified corrmcnd is executed in subsequent commands. @: goto lcbel Text Files r/O FCReate FOPen FGet FPut FCLose Terminal r/O GET PUT case oť error occurance l l l l l l l l l t 1n
  • 7. DEBUGGrxG PRoGRAI§ S^DE (Symbolic Ada_PEbugger) is a tool for t,racing program act,ivities and resLricted data modificaLions on Lhe so|,lrce Ada language level. Debug option must be seL to non-zero value for compilation and linking. DebuR€er Commands Break CAlícet Deposite EXArine ExIt Go llelp Input Line_rcde Output Refresh_screen SCope Screen_mde Scroll Sllor Spavn STep - set breakpoint - cancel breakpoint - modify objecL value - objeci value - debugger SADE; CTRLaZ may be usecl instead - conLinue program execution - again the most useful command - set debugger input device - seL line mode - set debugger output device - CTRL/i may be used inst.ead - seL scope - seL screen mode - screen up, dorn, left, righť Breakpoints Calls Corpilation_units Scope Tasks - execute DCL command - program execution control rnplEltEtrT^Tlolí DEPEilDEltT FEAtuREs standard praemas Pragmas CONTROLLED, SHARED, STORAGE_UNrT, ilEIíORY_SIZE a SYSTEIí_NA}íE are ignored. The effect of the last Lro mentioned pragmas can be obtained using SSAdaP runLime system commands. STORAGE_UNIT is preseL to 8 and cannot be modified_ Pragma rNTERFACE provides binding to !íACRO32 and VAX C at présent.
  • 8. rmplement-at,ion Dependent pragmas praema ALIGNLESS (type_simple_name) ; -- objects of the given scalar type can be placed on any -- alignment, inclusiv biL alignment Dragma BOR.DER; -- separates compilalion uniLs explicitly Data Tvoes Representation type byte renark enumeration SHoRT_rNTEGER INTEGER LONG_INTECER SHORT_FLOAT FLoAT LoNG_FLoAT access task fixed length L 1 2 1, B L 8 t6 L 1, L 1, byte in the range O..255 or -í28..727 longword in oLher cases rord longrord quadword F-FLoATING G-FLoATING H-FLoATrNG longrord 1ongrord 1ongrord longrord SSAdaP rHPLElíEI{TAfiOt{ AIHS The main part of this system has been written in Ada. Except runtime system and debugger, lhich have been rritten in macroassembler, only fer hundreds of lines are in it from more than 2OO OOO lines. This allows t,he high-level portability Lo oLher computers and operaLing systems. rn UNrX versions, macroassembler is beeing replaced by C language. BIBLrOGRAPHY I t I l I I I t ! I l l l l ll I I I l l t1 l Vladík, í21 SSAdaP t3l SSAdaP J. : Ada/EC/Slí - uživatelská příručka pro Sl,í 52/t2 VOS 4; Kancelářské sťroje Praha L9a9 Users l,íanual; SzKI Budapesť 19a9 System Programmers ltíanual; SzKr Budapest t989