Programming Languages Table-By Capers Jones COBOLFortranLISPExcelPascal
Programming Languages TableRelease 8.2, March 1996 By Capers Jones, Chairman, Software Productivity Research, Inc. © Copyright 1997 by Software Productivity Research, Inc. All Rights Reserved. What Is A Language Level?As language levels go up, fewer statements to code one Function Point are required. For example, COBOL is a level 3 and requires about 105 statements per Function Point. The numeric levels of various languages provide a convenient shortcut for converting size from one language to another. For example, if an application requires 1000 non-commentary COBOL statements (level 3), then it would take only 500 statements in a level 6 language (such as NATURAL) and only 250 statements in a level 12 language (such as OBJECTIVE C). As you can see, the average number of statements required is proportional to the levels of the various languages. Do Language Levels Affect Productivity?The correlation between the level of a language and development productivity is not linear. For most large software projects, coding amounts to only about 30 percent of the effort. Assume a program is written in a language that is twice the level of a similar program, for instance level 6 versus level 3. In this example, the coding effort might be reduced by 50 percent. But the total project might be improved by only 15 percent, since coding only comprised 30 percent of the original effort. Double the level of the language again to a level 12. That will only give an additional 7.5 percent net savings. Once again, coding is halved. But coding is not a major factor for very high level languages. More accurate economic productivity rates can be gained by examining the average monthly Function Point production rates associated with various language levels. Table 1 looks at how language levels affect productivity. Table 1. Language Level Relationship to Productivity LANGUAGE LEVEL PRODUCTIVITY AVERAGE PER STAFF MONTH -------------- ------------------------- 1 - 3 5 to 10 Function Points What Is The Basis For Language Levels?The languages and levels in Table 2 were gathered in four ways.
Counting Function Points And Source CodeActual counts of Function Points and source code statements were performed. Samples of counting Function Points and source code statements were done on Ada, several BASIC dialects, COBOL, PASCAL, and PL/I. Counting Source CodeSource code statements were counted, then compared to the size of the same program in languages of known levels. Assembly, APL, C, OBJECTIVE C, FORTH, FORTRAN, LISP, PILOT, and PROLOG are languages that produce the same source code count as COBOL. So code sizes were compared to the known quantity of COBOL source code. Inspecting Source CodeSource code inspection for common applications was done. Then the volume of code for the application in a measured language was hypothesized. ACTOR, CLARION, and TRUE BASIC are examples of languages that were inspected and their levels hypothesized by subjective means. Researching LanguagesResearch was done by reading descriptions and genealogies of languages and making an educated guess as to their levels. KL, CLOS, TWAICE, and FASBOL are examples of languages that were assigned tentative levels merely from descriptions of the language, rather than from actual counts. For spreadsheets the ordinary concepts of a language do not apply. In this case, formulas, labels, and constants were considered to be statements. List Of Programming LanguagesAs of 1996, there were more than 500 languages and major dialects of languages available to software practitioners. Table 2 lists the most common of them in what is considered version 7 of the SPR Programming Languages Table. Table 2. Programming Languages and Levels |
LANGUAGE | LEVEL | AVERAGE SOURCE STATEMENTS PER FUNCTION POINT |
1032/AF | 20.00 | 16 |
1st Generation default | 1.00 | 320 |
2nd Generation default | 3.00 | 107 |
3rd Generation default | 4.00 | 80 |
4th Generation default | 16.00 | 20 |
5th Generation default | 70.00 | 5 |
AAS Macro | 3.50 | 91 |
ABAP/4 | 20.00 | 16 |
ACCEL | 17.00 | 19 |
Access | 8.50 | 38 |
ACTOR | 15.00 | 21 |
Acumen | 11.50 | 28 |
Ada 83 | 4.50 | 71 |
Ada 95 | 6.50 | 49 |
ADR/DL | 8.00 | 40 |
ADR/IDEAL/PDL | 16.00 | 20 |
ADS/Batch | 16.00 | 20 |
ADS/Online | 16.00 | 20 |
AI shell default | 6.50 | 49 |
AI SHELLS | 6.50 | 49 |
ALGOL 68 | 3.00 | 107 |
ALGOL W | 3.00 | 107 |
AMBUSH | 10.00 | 32 |
AML | 6.50 | 49 |
AMPPL II | 5.00 | 64 |
ANSI BASIC | 5.00 | 64 |
ANSI COBOL 74 | 3.00 | 107 |
ANSI COBOL 85 | 3.50 | 91 |
ANSI SQL | 25.00 | 13 |
ANSWER/DB | 25.00 | 13 |
APL 360/370 | 10.00 | 32 |
APL default | 10.00 | 32 |
APL*PLUS | 10.00 | 32 |
APPLESOFT BASIC | 2.50 | 128 |
Application Builder | 16.00 | 20 |
Application Manager | 9.00 | 36 |
APS | 19.00 | 17 |
APT | 4.50 | 71 |
APTools | 16.00 | 20 |
ARC | 6.50 | 49 |
Ariel | 3.00 | 107 |
ARITY | 6.50 | 49 |
Arity PROLOG | 5.00 | 64 |
ART | 6.50 | 49 |
ART-IM | 7.00 | 46 |
ART Enterprise | 7.00 | 46 |
Artemis | 8.00 | 40 |
AS/SET | 17.00 | 19 |
ASI/INQUIRY | 25.00 | 13 |
ASK Windows | 7.00 | 46 |
Assembly (Basic) | 1.00 | 320 |
Assembly (Macro) | 1.50 | 213 |
Associative default | 5.00 | 64 |
Autocoder | 1.00 | 320 |
awk | 15.00 | 21 |
Aztec C | 2.50 | 128 |
BALM | 3.00 | 107 |
BASE SAS | 6.00 | 53 |
BASIC | 3.00 | 107 |
BASIC A | 2.50 | 128 |
Basic assembly | 1.00 | 320 |
Berkeley PASCAL | 3.50 | 91 |
BETTER BASIC | 3.50 | 91 |
BLISS | 3.00 | 107 |
BMSGEN | 9.00 | 36 |
BOEINGCALC | 50.00 | 6 |
BTEQ | 25.00 | 13 |
C | 2.50 | 128 |
C Set 2 | 3.50 | 91 |
C++ | 6.00 | 53 |
C86Plus | 2.50 | 128 |
CA-dBFast | 8.00 | 40 |
CA-EARL | 11.50 | 28 |
CAST | 6.50 | 49 |
CBASIC | 3.50 | 91 |
CDADL | 16.00 | 20 |
CELLSIM | 7.00 | 46 |
Centerline C++ | 6.00 | 53 |
CHILI | 3.00 | 107 |
CHILL | 3.00 | 107 |
CICS | 7.00 | 46 |
CLARION | 5.50 | 58 |
CLASCAL | 4.00 | 80 |
CLI | 10.00 | 32 |
CLIPPER | 17.00 | 19 |
CLIPPER DB | 8.00 | 40 |
CLOS | 15.00 | 21 |
CLOUT | 8.00 | 40 |
CMS2 | 3.00 | 107 |
CMSGEN | 17.00 | 19 |
COBOL | 3.00 | 107 |
COBOL II | 3.00 | 107 |
Cobol/400 | 3.50 | 91 |
COBRA | 16.00 | 20 |
CodeCenter | 9.00 | 36 |
Cofac | 9.00 | 36 |
COGEN | 9.00 | 36 |
COGNOS | 9.00 | 36 |
COGO | 4.50 | 71 |
COMAL | 4.00 | 80 |
COMIT II | 5.00 | 64 |
Common LISP | 5.00 | 64 |
Concurrent PASCAL | 4.00 | 80 |
CONNIVER | 5.00 | 64 |
CORAL 66 | 3.00 | 107 |
CORVET | 17.00 | 19 |
CorVision | 22.00 | 15 |
CPL | 2.00 | 160 |
Crystal Reports | 16.00 | 20 |
CSL | 6.50 | 49 |
CSP | 6.00 | 53 |
CSSL | 7.00 | 46 |
CULPRIT | 25.00 | 13 |
CxPERT | 6.50 | 49 |
CYGNET | 17.00 | 19 |
Data base default | 8.00 | 40 |
Dataflex | 8.00 | 40 |
Datatrieve | 16.00 | 20 |
dBase III | 8.00 | 40 |
dBase IV | 9.00 | 36 |
DCL | 1.50 | 213 |
DEC-RALLY | 8.00 | 40 |
Decision support default | 9.00 | 36 |
DELPHI | 11.00 | 29 |
DL/1 | 8.00 | 40 |
DNA-4 | 17.00 | 19 |
DOS Batch Files | 2.50 | 128 |
DSP Assembly | 2.00 | 160 |
DTABL | 7.00 | 46 |
DTIPT | 7.00 | 46 |
DYANA | 4.50 | 71 |
DYNAMO-III | 7.00 | 46 |
EASEL | 11.00 | 29 |
EASY | 6.50 | 49 |
EASYTRIEVE + | 25.00 | 13 |
Eclipse | 6.50 | 49 |
ED-Scheme 3.4 | 6.00 | 53 |
EDA/SQL | 27.00 | 12 |
EIFFEL | 15.00 | 21 |
ENFORM | 7.00 | 46 |
English-based default | 6.00 | 53 |
Ensemble | 11.00 | 29 |
EPOS | 16.00 | 20 |
Erlang | 8.00 | 40 |
ESF | 8.00 | 40 |
ESPADVISOR | 6.50 | 49 |
ESPL/I | 4.50 | 71 |
EUCLID | 3.00 | 107 |
EXCEL 1-2 | 51.00 | 6 |
EXCEL 3-4 | 55.00 | 6 |
EXCEL 5 | 57.00 | 6 |
EXPRESS | 9.00 | 36 |
EXSYS | 6.50 | 49 |
Extended Common LISP | 5.75 | 56 |
EZNOMAD | 9.00 | 36 |
Facets | 16.00 | 20 |
FactoryLink IV | 11.00 | 29 |
FAME | 9.00 | 36 |
FileMaker Pro | 9.00 | 36 |
FLAVORS | 11.00 | 29 |
FLEX | 7.00 | 46 |
FlexGen | 11.00 | 29 |
FOCUS | 8.00 | 40 |
FOIL | 6.00 | 53 |
Forte | 18.00 | 18 |
FORTH | 5.00 | 64 |
FORTRAN 66 | 2.50 | 128 |
FORTRAN 77 | 3.00 | 107 |
FORTRAN 90 | 4.00 | 80 |
FORTRAN 95 | 4.50 | 71 |
FORTRAN | 3.00 | 107 |
FORTRAN II | 2.50 | 128 |
Foundation | 11.00 | 29 |
FOXPRO 1 | 8.00 | 40 |
FOXPRO 2.5 | 9.50 | 34 |
FRAMEWORK | 50.00 | 6 |
G2 | 6.50 | 49 |
GAMMA | 20.00 | 16 |
Genascript | 12.00 | 27 |
GENER/OL | 25.00 | 13 |
GENEXUS | 21.00 | 15 |
GENIFER | 17.00 | 19 |
GeODE 2.0 | 20.00 | 16 |
GFA Basic | 9.50 | 34 |
GML | 7.00 | 46 |
Golden Common LISP | 5.00 | 64 |
GPSS | 7.00 | 46 |
GUEST | 11.50 | 28 |
Guru | 6.50 | 49 |
GW BASIC | 3.25 | 98 |
Haskell | 8.50 | 38 |
High C | 2.50 | 128 |
HLEVEL | 5.50 | 58 |
HP BASIC | 2.50 | 128 |
HTML 2.0 | 20.00 | 16 |
HTML 3.0 | 22.00 | 15 |
Huron | 20.00 | 16 |
IBM ADF I | 16.00 | 20 |
IBM ADF II | 18.00 | 18 |
IBM Advanced BASIC | 3.25 | 98 |
IBM CICS/VS | 8.00 | 40 |
IBM Compiled BASIC | 3.50 | 91 |
IBM VS COBOL | 3.00 | 107 |
IBM VS COBOL II | 3.50 | 91 |
ICES | 4.50 | 71 |
ICON | 4.00 | 80 |
IDMS | 8.00 | 40 |
IEF | 23.00 | 14 |
IEW | 23.00 | 14 |
IFPS/PLUS</font | Global site tag (gtag.js) - Google Analytics
相关推荐
In this practical guide, software-quality guru Capers Jones reveals best practices for ensuring software development success by illustrating the engineering methods used by the most successful large ...
This is the single best book on software quality engineering and metrics that I've encountered."-Capers Jones, from the Foreword
"This is the single best book on software quality engineering and metrics that I've encountered."-Capers Jones, from the Foreword <br>Metrics and Models in Software Quality Engineering, Second ...
c/C++ web 应用在android上的转换 包含一个ppt文档和一个developer guide,保留这里备用。 1. android NDK, for web applications 2. Snorkel provides basic web server capabilities for natively built ...
要自己编译,请克隆 repo 并从项目目录发出“make”,然后运行“./capers”。 目录概览: ./ 应用程序启动器、主 Makefile、许可证、杂项 蛋糕/ Martin Fierz 的蛋糕引擎 陈词滥调/ cb-engines的命令行主机,MF的...
NULL 博文链接:https://capers.iteye.com/blog/407755
NULL 博文链接:https://capers.iteye.com/blog/407753
NULL 博文链接:https://capers.iteye.com/blog/407717