{{Infobox programming language | name = Programming Language for Business | logo = | paradigm = [[Procedural programming|Procedural]], [[imperative programming|imperative]] | year = 1972 | designers = | developers = | latest release version = | latest release date = | typing = [[strong typing|Strong]],<ref name="infopro">{{cite web | url=http://www.sysmaker.com/infopro/plb.htm | title=Programming Language for Business | publisher=sysmaker.com | accessdate=10 June 2016}}</ref> [[static typing|static]] | implementations = DB/C DX, DATABUS, and PL/B | dialects = | influenced_by = [[COBOL]] | influenced = | file_ext = <code>.rl</code>, <code>.ps</code>, <code>.cb</code>, <code>.pls</code>, <code>.pgm</code> <!--| wikibooks = Programming Language for Business --><!-- No page in wikibooks as of 2023-0802 --> }}
'''Programming Language for Business''' or '''PL/B''' is a business-oriented [[programming language]] originally called '''DATABUS''' and designed by [[Datapoint]] in 1972<ref name="sysmaker">{{cite web | url=http://www.sysmaker.com/infopro/x3j15/ | title=J15 - Programming Language PL/B | publisher=sysmaker.com | accessdate=10 June 2016}}</ref> as an alternative to [[COBOL]] because Datapoint's [[8-bit computer]]s 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 [[American National Standards Institute|ANSI]] standard, and the name PL/B came about when Datapoint chose not to release its [[trademark]] on the DATABUS name.<ref name="dbc">{{cite web | url=https://www.dbcsoftware.com/dbcov.html | title=DB/C DX, DATABUS, and PL/B Overview | publisher=DBC Software | accessdate=10 June 2016}}</ref><ref name="mmc">{{cite web | url=http://www.mmcctech.com/pl-b/plb-0100.htm | title=ANSI Standard PL/B | publisher=mmcctech.com | accessdate=10 June 2016}}</ref>
== Functionality ==
Much like [[Java (programming language)|Java]] and [[Microsoft .NET|.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]].<ref name="sunbelt">{{cite web | url=http://www.sunbelt-plb.com/show.php?Page=aboutplb.shtml | title=About PL/B | publisher=Sunbelt Computer Systems, Inc. | accessdate=10 June 2016}}</ref> PL/B (Databus) is actively used all over the world, and has several forums on the Internet dedicated to supporting software developers.{{cn|date=February 2025}}
PL/B has a database capability built-in with ISAM and Associative Hashed Indexes,<ref name="sunbelt" /> as well as functionality for working with [[ODBC]], [[SQL]], [[Oracle Database|Oracle]],<ref>{{Cite web |title=SQL Instructions |url=https://sunbelt-plb.com/help/htm/plb/sql_overview.htm |access-date=2022-06-06 |website=sunbelt-plb.com}}</ref> sequential, random access, [[XML]] and [[JSON]] files.<ref>{{Cite web |title=XDATA |url=https://sunbelt-plb.com/help/htm/plb/xdata.htm |access-date=2022-06-06 |website=sunbelt-plb.com}}</ref>
PL/B also has the ability to access external routines through [[Component Object Model|COM objects]], [[Dynamic-link library|DLLs]] and [[Microsoft .NET|.NET]] assemblies. Full access to the [[Microsoft .NET|.NET]] framework is built into many versions.{{cn|date=February 2025}}
Several implementations of the language are capable of running as an Application Server like [[Citrix]], and connecting to remote databases through a data manager.{{cn|date=February 2025}}
== 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 == {{reflist|30em}}
== External links == {{Portal|Computer programming}} * [http://www.sunbelt-plb.com Sunbelt implementation of PL/B] * [http://www.sysmaker.com/infopro/x3j15 ANSI PL/B Standards Committee] * [http://www.mmcctech.com/pl-b/plb-0010.htm MMCC PL/B programming notebook] * [http://www.dbcsoftware.com/dbcov.html DB/C DX, DATABUS, and PL/B Overview] * [http://bitsavers.trailing-edge.com/pdf/datapoint/software/50004_databusSimpUG_Feb76.pdf Databus Simplified User Guide]
{{Major programming languages}} {{ISO standards}}
[[Category:Procedural programming languages]] [[Category:Cross-platform software]] [[Category:Programming languages created in 1972]] [[Category:Structured programming languages]]