From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

MAPPER, now known as BIS, is a fourth-generation programming language from Sperry Univac. Mapper originated in the 1970s[1] based on some work in the 1960s,[2] but has been kept current. It was renamed and also given an extension named ICE - Internet Commerce Enabler.[3][1]

Originally available on Sperry's Univac 1108, implementations now also exist for Windows NT, Sun Solaris and Linux.[4] The GUI on Windows is the most advanced of these.[1]


MAPPER (MAintain, Prepare, and Produce Executive Reports)—officially renamed BIS (Business Information Server) but still called MAPPER by many users[1]—began as an internal product. It was developed in Sperry Univac's computer factory in Roseville, Minnesota to help the company manage their factory producing computer hardware.[5][6] It was initially called CRT RPS (Report Processing System), to differentiate it from RPG. Its first external customer was Santa Fe Railway. Besides the Santa Fe, the Kansas City government was an early customer. MAPPER became a popular solution in the Government sector. User group communities formed like the New England MAPPER Users Group.

CRT RPS was renamed MAPPER in 1975. Because of its unofficial status it was a low-budget development, and was built for minimum use of resources. It was written in Assember language.[1] Initially it had only limited string manipulation;[1] that has since been corrected. A Macro capability was also subsequently added. The development of the UNIVAC 1100, and pressure from customers led to a release for more general use in 1979.

In the mid 1980s Sperry actively marketed MAPPER, including advertising featuring "MAPPER Man", the self-empowered executive end-user. In the Scandinavian countries, Sperry had a MAPPER song—"Do it the MAPPER way!" (1983)—written and performed by an ABBA-style group.

A 1989 survey by Unisys showed that 140 of 224 UNIVAC 1100 customers were using MAPPER. By 2006 there were more than 600 sites using MAPPER for Windows NT.


An early description of MAPPER was the paper "MAPPER Was the First User-command Language" presented at the USE technical conference in March 1983 by Michael Nicoll-Griffith of Canadian Pacific Consulting Services and published as part of the USE proceedings. In 1988, the book "User-driven Computing" by Louis Schlueter was published.

MAPPER use requires that the community have a MAPPER Coordinator, who has a set of privileged tools to monitor and tune the development and control abuses. Tools are written in the MAP programming edit mapper (command)

Data structure[edit]

The basic unit of data is called a "report". This appears similar to a Microsoft Excel spreadsheet. It is usual to have sets of similar reports with the same column structure that apply to different categories or groupings of items. Reports are organised into "drawers" of identically-structured reports, and groups of up to 8 drawers form a "cabinet". Reports can be between 40 and up to 998 characters wide, depending on platform. On the "Core MAPPER" platforms (Windows/Unix/Linux), the drawer size must be a multiple of 2: on the 1100/2200 it can be an odd number.

Reports are numbered from 1 to the maximum set for the drawer- there is also a report zero, which has a special significance as it acts as both a template and as a filter for the rest of the reports in the drawer. Drawers have a drawer letter, from B to I. Cabinets are numbered from 0 and increment by 2 - odd numbered cabinets reference the same data as the matching even cabinet, but provide a read-only view of the data (e.g. cabinet 0 and cabinet 1 represent full and limited access to the same data). There is a system maximum for a given system, which varies depending on platform and is represented by the system reserved work MAXCAB$. Drawers run from B to I because A is a special drawer; it is deemed to exist simultaneously in all cabinets, so acts as a global resource. Drawer A is typically used for "quick and dirty" temporary datasets, captured data, prototype run code, notes and so on. The third report in drawer C in cabinet 36 would be referenced as 3C36, or simply 3C if the user is logged into cabinet 36 already.

A major difference from spreadsheets is that MAPPER reports have no built-in calculation capability. Processing is achieved by applying a "Command" or "Function" to a report, an action that produces a duplicated "result". This result can be processed further.

Another important difference is that MAPPER data is a form of visible-record data; what you see is literally what you get. Within an individual drawer, reports all have the same line length, which is padded with spaces if not filled. By the same token, column sizes within a data record are fixed, unlike Excel where you can type hundreds of characters into a small field unless limited by data validation. This is both a strength and a weakness of MAPPER- due to the fixed sizes, the position of any section of the data on disk can be calculated, but the data must be able to be expressed in fixed-format fields.

In older versions of MAPPER, security was applied at a cabinet level– with current versions, security has a finer granularity and is applied at drawer level. If a user is not granted access to a particular drawer, the data will not be visible to that user. It's possible to grant either update or read-only access to a given drawer.

Command language[edit]

When a command is to be performed, the software obtains the data organization from column headings that are above the data. In essence, it generates the "schema" on demand. Popular commands are "Search" to make a subset, "Sort" to change the sequence of lines, "Totalize" to generate subtotals by type, category or date. Two independent reports can be combined with "Match", while very sophisticated commands like "Calculate and Update" include successive steps in one operation. The result of a command can be operated on by a succeeding command.

Real-time efficiency[edit]

In the operation of MAPPER, the data is not obtained by a program that "reads" them, but the data wait for action.[clarification needed] The programmed commands are brought to operate upon it. However, the complete set of available commands remains in the active memory of the computer. Being written in "re-entrant code", any command can be used by many hundreds of different users at the same time.

To avoid a bottleneck in disk accesses, the data is kept in screen display format. This results in the average number of disk reads per report display to be less than two.

The addition of new "records" to a long report can involve high disk activity and render a system non-responsive. understandable.

Extended capabilities[edit]

Run language[edit]

Over time, the product has seen extensions made from the base described above. The first of these, mandated by the Santa Fe Railroad, was a repeat command capability, called a "Run", and similar in concept to an Excel macro. This use of the pretested commands applied successively reduces the chance for programming errors.

The "Run language" uses scripted forms of normal screen commands on the reports (e.g. the manual SORT and the run-language element @SOR will invoke the same compiled re-entrant code module).

It permits logical selection of different processing paths, allows loops and logic branching, user-interaction and similar. It also has the capacity to perform calculations or base processing logic on any character or data field in the entire database. Naturally, this is subject to the security category of the data.

Cooperative processing[edit]

By using network connections, two or more MAPPER systems can process cooperatively. In this, one will wait for task completion by another. MAPPER handles data or text message traffic between users.

Operations in one machine may be started over the network. SQL data retrieval commands can be issued with full SQL syntax on external databases, and the results used in further MAPPER processing. MAPPER can run websites with its own .asp front end, has an integrated JavaScript engine, can produce XML for B2B, and is able to manipulate SOAP objects.

Current status[edit]

The BIS product is still in use,[1] and there still are job postings for it.[7] [8][9] There's even coverage of "average salaries by job title and skillset" at SimplyHired,[10] BIS/MAPPER use includes end-user-written applications.[11]

External links[edit]


  1. ^ a b c d e f g "Language Mapper".
  2. ^ Del Fiacco, Gerry (2008-08-23). "MAPPER: A Mission Critical Legacy". Archived from the original on 2008-08-23. Retrieved 2019-02-03.
  3. ^ Oracle can be used as the backend database
  4. ^ "Rosetta Code - Category:MAPPER".
  5. ^ MAPPER Collection, 1983-1996
  6. ^ Early motivation (Gerry Del Fiacco)
  7. ^ "Search for unisys bis mapper analyst jobs at Monster" "unisys bis mapper analyst Jobs".
  8. ^ A quick scan done July 30, 2018 shows that all have co-requisites, e.g. C++, COBOL, or are other-titled positions that require BIS/MAPPER, e.g. Clinical Services Analyst, Business Analyst, Financial Analyst. The locations included Texas, Pennsylvania, Boston/MA, Washington DC, Iowa.
  9. ^ "System (MAPPER) or a background in an equivalent programming logic, experience with Unisys BIS (MAPPER) or similar" "SYSTEMS PROGRAMMER/DEVELOPER III - 60017423".
  10. ^ "unisys bis mapper Salaries".
  11. ^ Employer seeking a trainer for BIS/MAPPER (Timestamped "18 hours ago") "BIS MAPPER TRAINER - Desktop Applications Job". |date=July 30, 2018