state-diagram

Tool for printing SDL/PR diagrams


Sadly UML has virtually killed SDL (Specification and Description Language, ITU Z.100) and finding useful tools supporting SDL is hard today.

I want to print state diagrams and I remember that I have used a free tool years ago. It was a windows binary which some company (from Brazil if I remember correctly) had developed a long time ago but since they no longer had any commercial interest in it any longer they provided it for free download (just the binary, no source code). It could print SDL/PR files at least which is what I am looking for.

I have tried to search for it but am unable to find it. Does anyone have a link (or name) for this tool?


Solution

  • Finally I found it. It is called SDLT:

    What is

    The SDLT is a free SDL compiler for SDL-PR language that generates SDL-GR in PostScript format.

    The SDL language is a language well suited for especification and description of service oriented applications.

    SDLT programs comp.exe, pag.exe and form.exe were originally developped in CPqD TELEBRAS and were transfered, in 1986, together with the TROPICO R product, to contracted manufactures.

    The SDLT also generates SDL-GR in PDF format if you have installed the CutePDFTM Printer.

    Update:

    For some reason, I get a "file not found" error when running compile from the sdlt program. Since it only is a graphical frontend I have figured out how to run the required backends from a Makefile:

    # Variables assigned with = are evaluated at each substitution.
    # Variables assigned with := are evaluated at assignment.
    SDLT_CONF := $(shell mktemp sdlt.conf.XXXXXXXXXX)
    
    all: basics1.pdf
    
    %.pdf: %.ps
            ps2pdf $^ $@
    
    %.ps: %.prg
            ./mk_dosbox_conf.sh `pwd` `echo $@ | sed 's/\.ps$$//'` > $(SDLT_CONF)
            dosbox -conf $(SDLT_CONF)
            rm $(SDLT_CONF)
            mv \
                    `echo $@ | tr "[:lower:]" "[:upper:]"` \
                    `echo $@ | tr "[:upper:]" "[:lower:]"`
    

    And with the following as mk_dosbox_conf.sh:

    #!/bin/sh
    
    # Makes a dosbox.conf file that automates what SDLT.exe does
    
    if [ $# -ne 2 ]
    then
            echo "Usage: $0 <directory> <filenamebase>"
            exit 1
    fi
    
    cat <<EOF
    [autoexec]
    mount c: $1
    c:
    comp $2
    pag  $2
    form $2
    del $2.SBL
    del $2.LST
    del $2.RSP
    del $2.TXT
    exit
    EOF