Programming Languages Todd Montgomery [aka Quiktek] (tmont@cerc.wvu.edu) ---------------------------------------------------------------------------- Languages used to program utilities. These include suites of tools to automate some of the programming, and compilers to actually produce cyberdeck executables. The languages come in two different styles, PC based and Matrix based. A programmer can not use a Language which has a level greater than his Computer Skill. All these programs are Legal to Licensed Matrix Corporations. These programs carry the same Legality of all other Matrix Programs (Highly Illegal most everywhere). Personal Computer (PC) based languages These languages use a PC to program the code. These languages give additional dice to making programs (Add level of language to number of dice to roll). Required Equipment: * Personal Computer (Mp equal to program being worked on + Size of language tool) CGI (C Graphic Interface): Level 0 This basic compiler takes high level code and creates cyberdeck executable files. This is the standard tool used by 90% of the freelance programmers. Cost: 500Y Size: 0 Mp, Tool is usually integrated into most PCs Availability: 4/48 hrs. Street Index: 0.5 OCGI (Object C Graphic Interface): Level 1 This tool includes a compiler as well as a collection of very good limited expert systems to do most of the actual coding. Cost: 1,200Y Size: 32 Mp Availability: 6/72 hrs. Street Index: 0.8 MEDI (Matrix Elementwise Design Interface): Level 2 This tool includes a high performance compiler, suite of resource tools for graphics, and an extended group of limited expert systems to perform most of the coding. Cost: 4,050Y Size: 108 Mp Availability: 10/14 days Street Index: 1.5 MPDT (Multi-Persona Design Tool): Level 3 This tool includes three separate compilers, dedicated to producing high quality code, a suite of resource tools, and a vast collection of limited expert systems to perform most of the actual coding. Cost: 10,400Y Size: 256 Mp Availability: 12/24 days Street Index: 3.0 Matrix based languages These programming languages require a connection to the Matrix to use. The link is necessary because the programs are highly dependent on Matrix utilities to help in Object visualization. This high dependency on Virtual Reality Construction and Mainframe system abilities allow the developer to full take advantage of the tool. These languages are the kind used by most corporations and as such are very difficult to LEGALLY get a hold of without getting permits. These languages lower the Target Number of the programming success test by their level. They do not add additional dice. The reduction of the Target Number is only used for the actual Programming Success Test, not for figuring the program size, ability limits, etc. Required Equipment: * Matrix connection to a Mainframe system. * Cyberdeck with Active memory equal to size of program being constructed + 1/5 size of tool being used. XMEDI (eXtended Matrix Elementwise Design Interface): Level 1 This tool provides a large array of expert systems, compilers, and resource handlers that can drastically affect the Software development process. The use of Matrix simsense allows the developer the ability to tailor graphics to taste while not sacrificing program requirements. Tool Size: 64 Mp Cost: 24,450Y Availability: 12/24 days Street Index: 2.0 LBT (Library Born Technology): Level 2 This tool is the best on the market. It has all the capabilities of the XMEDI plus adds in a very limited expert control system which can actually code while the developer is spending all their energies on the "Big Software Picture". Tool Size: 324 Mp Cost: 48,650Y Availability: 24/60 days Street Index: 3.0 OTHER USEFUL LANGUAGES OMPDT (Object Multi-Persona Design Tool): Level 2 This tool is a small utility which allows the Matrix user to develop short one-shots with a minimum of stress. Tool Size: 32 Mp Cost: 3,750Y Availability: 8/14 days Use: This tool gives the decker 2 extra dice to design programs on the fly. Must be running to give the benefit. Programming Languages: Most deckers make their own suite of tools, and resources for their own use. This procedure, while being different from usual programming, is not extremely difficult. Two Kinds of Languages can be made: PC based, and Matrix Based. PC based adds its level in Dice to the success test, while Matrix based lowers the Target Number by its level. Base Time: Size X 2 days Size: PC based: (Level+1)^3 x 4 Mp Matrix based: (Level+1)^4 x 4 Mp Skill used: Computer Skill Target: PC based: (Level+1)*2 Matrix based: (Level+1)^2 Required Equipment: PC based: PC (Mp equal to Size of Language + Size of any tools being used.) Matrix based: Matrix connection to a Mainframe system. Cyberdeck with Active Memory equal to 1/5 size of tool being constructed. Limit: PC based: Level = Computer Theory/3 (round off) Matrix based: Level = Computer Theory/4 (round off) Programming Library Options: When, in the early days of the computer revolution, programmers needed routines to put output to the screen or read from a keyboard port, they were required to write these low level routines themselves, thus adding more time to an already laborious task. Early in the 1980's, the issues of software reuse were discussed. But as we all know it took several generations of computing experience to see that software reuse really could be useful. Today, most software developers look to premade libraries to provide them with needed code to meet tough program requirements. Speed, Memory size, Load Ratings, etc. are all tough requirements to fill. And it is libraries which make these requirements reachable. All the languages above and many other undiscussed languages have GigaPulses and GigaPulses of support libraries. Any of these specialized libraries can be incorporated into a programming project. The legalities of using libraries are covered under the World Trade Act of 2036. Corporations may use libraries for development as long as the library is licensed under their Matrix Licensing Permit. Libraries, like most other programs, have ratings. But unlike most other programs, libraries are only used when a developer is designing/coding a project. These libraries contain a large amount of alternatives to the same problem. So that is why the actual size of these libraries varies so widely. These libraries also have a drastic effect on various aspects of a program performance. The trade off is will known in the software community. Using these libraries: The effects of each library are discussed below. Each library also has a size. This size has no effect on the programming. All it is used for is figuring time to develop libraries and how much memory such libraries take up. Size Optimizing Libraries: These libraries allow programmers to use specially made subroutines which are optimized to take up as little space as possible. The trade off is these libraries are difficult to use and require careful planning. Ratings: 1-10 Size: (Rating^2) x 5 Mp Cost: As program of same rating. Availability: As program of same rating. Effect: Reduce size of finished program by (Rating x Programmer Computer Theory Skill/2 (Round off))%. Increase Target Number for determining Program Success Test by Rating/2 (Round up). Load Rating Optimizing Libraries: These Libraries are optimized to take advantage of system characteristics to lessen the Load Rating imparted by a cyberdeck. But the tradeoff is increased program size. This is the result of the use of limited AI routines to decide how to load the system. Ratings: 1-10 Size: (Rating^2) x 4 Mp Cost: As program of same rating. Availability: As program of same rating. Effect: Reduce Size of Program, when determining contribution to Load Rating only, by (Rating x Programmers Computer Theory Skill)%. Increase Size of Program by (Rating x 2.0)% Non-Corruptive Libraries: These libraries provide a level of bullet- proofing to utilties. This bullet-proofing allows the program more resistance to data corruption from viruses and arrant Tar class IC. The trade off is that the size of programs is slightly increased. Ratings: 1-10 Size: (Rating^2) x 5 Mp Cost: As program of same rating/2. Availability: As program of same rating -2. Effect: Tar Baby and Tar Pit IC have their Ratings reduced by the Rating of the Library/2 when determining if they corrupt a utility. Increase Program size by (Rating)% A specific library is made for a certain Language. So self made Languages can ONLY use self-made Libraries. And a library written for XMEDI will not work with CGI or MPDT. Several libraries may be combined, but each library added adds 1 to the Target Number of the Programming Success Test. Each effect uses the Base program statistics before any modifications. And then all effects are added. Percentages are added before computing there actual value. Example: Joey (Computer Theory Skill 6) is using Load Rating (4) and Size Optimizing (5) Libraries. The final program will size will be ((4 x 2)-(6/2 x 5)) = -7%. The Target Number for determining Program Success is +2, and The Program acts as if it were -(6 x 5)% to size when determining Load Rating. Programming Libraries: Libraries are programmed exactly like normal programs. But languages provide no additional dice OR reductions to Target Number.