From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version]  [offline version]offline version generated on 04-Aug-2010 21:08 UTC

RTSC Interface Primer

Working with spec'd target modules in the abstract

This Primer introduces RTSC interfaces, used to abstract the functionality of spec'd target modules. Picking up where the companion RTSC Module Primer leaves off, we'll take the production and consumption of ordinary (concrete) modules to a whole new level of generality through the use of (abstract) RTSC interfaces.

Along the way, we'll probe ever-deeper into XDCspec and XDCscript—two special-purpose languages that work hand-in-hand with standard C in a symbiotic alliance of programmatic capabilities that RTSC names eXpanDed  C:

  • As for XDCspec, we'll formally introduce interface as a language keyword, taking its place alongside module and package as the one of the programmatic pillars upon which all of RTSC rests.

  • As for XDCscript, we'll leverage its general-purpose programmability within ever-more sophisticated meta-content used to build, configure, and test ever-more sophisticated target-content.

As an overarching objective, RTSC promises a higher-level form of C programming—one suitable for developing, delivering, and deploying real-time software components—but without sacrificing overall system performance through additional runtime overhead. With RTSC interfaces just in front of us—along with the all-important proxy-delegate design pattern that composes RTSC modules using RTSC interfaces—we can now declare:  You're finally here!

Contents

Who's the audience

Needless to say, we assume you've studied—and hopefully retained—much of the material covered in the RTSC Module Primer. Your ability to not only consume but also produce RTSC modules will become axiomatic to working with RTSC interfaces—which, as you'll come to appreciate, abstract the behavior of entire families of conforming RTSC modules.

In all other respects, our presumptions about your software background and experience remain the same:

  • you've worked with the C programming language, preferably in developing embedded applications;
  • you don't necessarily have any experience with object-oriented programming or languages; but
  • you are at least curious about how RTSC can take C programming to an entirely new level.

As for RTSC itself, we require neither prior knowledge of its concepts nor practical experience with the XDCtools product—other than what you've already mastered from reading the RTSC Module Primer.

What we'll cover

We've structured the Primer as a graduated series of lessons, reinforcing concepts and idioms fundamental not only to producing and consuming RTSC modules but also to abstracting the behavior of these modules through RTSC interfaces.

Lesson 11 Module abstraction — specifying & implementing the IGen interface
Lesson 12 Proxy modules — generalizing the implementation of Bench
Lesson 13 Proxy modules — managing target-specific Fir implementations
Lesson 14 Abstract testing — benchmarking IFir implementations
Lesson 15 Abstract instances — techniques for creating IGen objects

To further emphasize how all of this material ultimately builds upon the foundation laid down by the RTSC Module Primer, you'll notice we've numbered these Lessons 11-15. Without exception, each lesson of the Interface Primer will revisit programming examples covered in earlier lessons within the Module Primer—but now, through the use of RTSC interfaces, will render these examples more flexible, more portable, and hence more re-usable.

How to proceed

No different than before—that is, iteratively.... More than ever we encourage making several passes through these lessons, which actually pack quite of bit of (new) information as they move from one example to the next. As before, don't feel compelled to actually run any of the programming examples in your initial reading(s) of this material—stay in "read-only" mode instead, and focus instead on grasping the underlying concepts before the programming mechanics.

Installing the examples.  Even if you don't plan to run the programming examples at this time, you might consider installing the examples for reference. Unlike the earlier Module Primer—which faithfully reproduced all of the example code within the body of the document—we'll now omit portions of a source file not pertinent to the discussion at hand; or, we'll simply omit certain (trivial) files from the discussion altogether, inviting you to browse the code instead.

You'll find the examples here, distributed as a single .zip file which you should unpack into the same «examples» directory populated back in Lesson 0. Note that we've created new package names for the (new) examples presented in Lessons 11-16, so you can indeed install these packages in the same «examples» repository used earlier.

See also

 

[printable version]  [offline version]offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Views
Personal tools
package reference