| Programming Language for Business | |
|---|---|
| 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 MS-DOS, Unix, Linux, and Windows. [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