欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Programming Languages Table-By Capers Jones COBOLFortranLISPExcelPascal 

程序员文章站 2022-07-15 21:26:52
...

Programming Languages Table

Release 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
<br>
4 - 8 10 to 20 Function Points
<br>
9 - 15 16 to 23 Function Points
<br>
16 - 23 15 to 30 Function Points
<br>
24 - 55 30 to 50 Function Points
<br>
Above 55 40 to 100 Function Points
<br>

What Is The Basis For Language Levels?

The languages and levels in Table 2 were gathered in four ways.

  • Counting Function Points and Source Code
  • Counting Source Code
  • Inspecting Source Code
  • Researching Languages
Counting Function Points And Source Code

Actual 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 Code

Source 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 Code

Source 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 Languages

Research 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 Languages

As 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