Programming Language for Business

From HandWiki
Programming Language for Business
ParadigmProcedural, imperative
First appeared1972
Typing disciplineStrong,[1] static
Filename extensions.rl, .ps, .cb, .pls, .pgm
Major implementations
DB/C DX, DATABUS, and PL/B
Influenced by
COBOL

Programming Language for Business or PL/B is a business-oriented programming language originally called DATABUS and designed by Datapoint in 1972[2] as an alternative to COBOL because Datapoint's 8-bit computers could not fit COBOL into their limited memory, and because COBOL did not at the time have facilities to deal with Datapoint's built-in keyboard and screen.

A version of DATABUS became an ANSI standard, and the name PL/B came about when Datapoint chose not to release its trademark on the DATABUS name.[3][4]

Functionality

Much like Java and .NET, PL/B programs are compiled into an intermediate byte-code, which is then interpreted by a runtime library. Because of this, many PL/B programs can run on DOS, Unix, Linux, and Windows operating systems.[5] The PL/B development environments are influenced by Java and Visual Basic, and offer many of the same features found in those languages. PL/B (Databus) is actively used all over the world, and has several forums on the Internet dedicated to supporting software developers.

Since its inception, PL/B has been enhanced and adapted to keep it modernized and able to access various data sources. It has a database capability built-in with ISAM and Associative Hashed Indexes, as well as ODBC, SQL, Oracle,[6] sequential, random access, XML and JSON files.[7]

All the constructs of modern programming languages have been incrementally added to the language. PL/B also has the ability to access external routines through COM, DLL's and .NET assemblies. Full access to the .NET framework is built into many versions.

Several implementations of the language are capable of running as an Application Server like Citrix, and connecting to remote databases through a data manager.

Source code example

        IF (DF_EDIT[ITEM] = "PHYS")
           STATESAVE MYSTATE
           IF (C_F07B != 2)
              DISPLAY   *SETSWALL 1:1:1:80:
                        *BGCOLOR=2,*COLOR=15:
                        *P49:1," 7-Find "
           ELSE
              DISPLAY   *SETSWALL 1:1:1:80:
                        *BGCOLOR=7,*COLOR=0:
                        *P49:1," 7-Find "
           ENDIF
           STATEREST MYSTATE
           TRAP      GET_PRO NORESET IF F7
        ENDIF
        IF (SHOW_FILTER AND THIS_FILTER AND C_CUSTNO <> "MAG")
           LOADMOD   "filter"
           PACK      PASS_ID WITH "QED     ",QED_ID1,BLANKS
           MOVE      " FILTER DISPLAY (F6)        " TO PASS_DESC
           SET C_BIGFLT
           CALL      RUN_FILT USING PASS_ID,PASS_DESC,"432"
           UNLOAD    "filter"
           CLEAR     THIS_FILTER
        ENDIF

References

External links