Skip to main content

The STL Coordination Language

  • Chapter
  • First Online:
Objective Coordination in Multi-Agent System Engineering

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 2039))

  • 537 Accesses

Abstract

STL1 [Kro97], [KCD+98], [SKCH98], [KCDS98] is applied to multi-threaded applications on a LAN of UNIX workstations. STL materializes the separation of concern as it uses a separate language exclusively reserved for coordination purposes; it however provides some primitives which are used in a computation language to express interactions between the entities. The implementation of STL is based on Pt-pvm [KHS96], a library providing message passing and process management facilities at thread and process level for a cluster of workstations. In particular, blops are implemented as heavy-weight UNIX processes, and processes are realized as light-weight processes (threads).

An application written using STL is composed of two parts (see figure 5.1 as an illustration): - The computation part implemented in an ordinary computational language (file app-func.c). The implementation supports the C programming language [KR78]: every process is implemented with a function that is launched as a thread. - The coordination part implemented in STL (file app.stl).

From the STL code (app.stl), the STL-compiler produces pure C code (app.c), which uses the Pt-pvm communication API; the generated C file (app.c) together with the computation files (app-func.c)must then be compiled and linked together with the Pt-pvm and STL runtime libraries, in order to generate the executable (app).

As already stated, STL implements only coordination duties of processes implemented in a computation language (namely C). However, several primitives have been implemented to be used in the computational language. They are necessary to interact with the STL coordination elements. The set of primitives includes the following families: i) Operations to dynamically create ports, referred to as dynamic ports; note that the port type definition can only be done in the coordination language; ii) Operations for process manage- ment, namely for dynamic creation of processes from within the computation language; iii) Methods to transfer data from and to ports.

Figure 5.2 gives a first impression of what STL code looks like. In a default world blop (line 1), which is a root blop encompassing every other entity, a hierarchy of processes and blops are defined (process the process and blop the blop at lines 3 and 10) and then created (lines 14 and 16). This shows that the hierarchical structure is used yet at definition level, because a blop is always defined within another blop.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

(2001). The STL Coordination Language. In: Objective Coordination in Multi-Agent System Engineering. Lecture Notes in Computer Science(), vol 2039. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44933-7_5

Download citation

  • DOI: https://doi.org/10.1007/3-540-44933-7_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41982-2

  • Online ISBN: 978-3-540-44933-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics