Paradigm | Procedural, imperative |
---|---|
First appeared | 1972 |
Typing discipline | Strong, [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]
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] PL/B (Databus) is actively used all over the world, and has several forums on the Internet dedicated to supporting software developers.[ citation needed ]
PL/B has a database capability built-in with ISAM and Associative Hashed Indexes [5] , as well as functionality for working with ODBC, SQL, Oracle, [6] sequential, random access, XML and JSON files. [7]
PL/B also has the ability to access external routines through COM objects, DLLs and .NET assemblies. Full access to the .NET framework is built into many versions.[ citation needed ]
Several implementations of the language are capable of running as an Application Server like Citrix, and connecting to remote databases through a data manager.[ citation needed ]
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