한국   대만   중국   일본 
PL/I - 위키百科, 우리 모두의 百科事典 本文으로 移動

PL/I

위키百科, 우리 모두의 百科事典.
( PL/1 에서 넘어옴)

PL/I ( IPA:  [?piː??l?w?n] )는 Programming Language One 의 略語로, 科學, 工學 및 産業 應用 프로그램을 위해 設計된 命令形 프로그래밍 言語이다. IBM 에서 自社의 메인프레임 에서 使用하기 위해 開發했다. 1960年代 導入 以後로 다양한 學術, 商業, 産業 團體들이 使用하고 있으며, 2009年 基準으로 如前히 活潑히 쓰이고 있다. [1]

PL/I의 主要 分野는 데이터 處理 , 數値 解釋 , 科學的 演算 , 시스템 프로그래밍 이다. 言語의 文法은 英語와 같이 取扱되며 이들을 確認하고 操作하는 命令語 集合을 使用하여 複雜한 데이터 形式을 記述하는데 適切하다.

歷史 [ 編輯 ]

1950年代와 1960年代 初에 비즈니스 및 科學 分野의 使用者들은 各其 다른 프로그래밍 言語를 使用하여 다른 컴퓨터 하드웨어를 위해 프로그램을 作成하였다. 비즈니스 分野의 使用者들은 COMTRAN 을 經由하는 오토코더 에서 코볼 로 옮겨가고 있었지만, 科學 分野의 使用者들은 GIP(General Interpretive Programme), 포트란 , 알골 , GEORGE 로 프로그램을 作成하였다. IBM 시스템/360 [2] (1964年에 發表하였으나 1966年까지 普及되지 않았음)이 두 그룹의 使用者들을 위한 共通의 머신 아키텍처로 設計되면서 旣存의 모든 IBM 아키텍처들을 代替하였다. 이와 비슷하게, IBM은 모든 使用者들을 위한 單一 프로그래밍 言語를 願하였다. IBM은 포트란이 常用 프로그래머들이 必要로하는 機能들로 擴張되길 바랐다. 1963年 10月, IBM 科學 使用者 그룹의 세 名의 뉴욕 IBM 出身과 세 名의 SHARE 出身에 依해 한 委員會가 設立되었고 [3] 포트란에 對한 이러한 擴張들을 提案하였다. 포트란의 制約으로 인해 이를 遂行할 수 없었고 알골 에 어느 程度 基盤한 NPL이라는 이름의 새로운 프로그래밍 言語의 設計에 着手하였다. NPL이라는 이름은 英國의 National Physical Laboratory와 衝突되어 MPPL (MultiPurpose Programming Language)로 바뀌었고, 1965年 PL/I으로 바뀌었다. 最初의 定義는 1964年 4月에 登場하였다. [4] [5]

最初의 컴파일러는 1966年에 普及되었다. PL/I 標準은 1976年에 承認되었다.

言語 要約 [ 編輯 ]

이 言語는 全的으로 모든 프로그래머들에게 맞추도록 設計되어 있다. [6] 이 要約은 ANSI PL/I 標準 [7] 및 ANSI PL/I General-Purpose Subset 標準으로부터 가져온 것이다. [8]

分類
構造的 PROCEDURE (또는 PROC )
ENTRY
BEGIN
DO
END
宣言的 DECLARE (또는 DCL )
DEFAULT (또는 DFT )
FORMAT
制御 흐름 CALL
IF
SELECT
GO TO
RETURN
STOP
Null 文
인터럽트 핸들링 ON
SIGNAL
REVERT
스토리지 ALLOCATE (또는 ALLOC )
FREE
割當門
入出力 OPEN
CLOSE
스트림 入出力 GET
PUT
레코드 入出力 READ
WRITE
REWRITE
LOCATE
DELETE

識別子 宣言은 다음의 特性들 中 하나 以上을 包含할 수 있다:

데이터 特性 入出力 特性 其他 特性
ALIGNED DIRECT AUTOMATIC 또는 AUTO
AREA[( area-size)] ENVIRONMENT(options) 또는 ENV... BASED[(reference)
BINARY [(precision)] 또는 BIN... INPUT BUILTIN
BIT [(maximum-length)] KEYED CONDITION 또는 COND
CHARACTER[(maximum-length)] 또는 CHAR... OUTPUT CONSTANT
COMPLEX [(precision)] 또는 CPLX... PRINT CONTROLLED 또는 CTL
DECIMAL [(precision)] 또는 DEC... SEQUENTIAL 또는 SEQL DEFINED[( reference)] 또는 DEF...
(dimension-attribute) STREAM EXTERNAL 또는 EXT
ENTRY[(parameter descriptor list] UPDATE GENERIC(criteria list)
FILE RECORD INITIAL(value-list) 또는 INIT...
FIXED [(precision)] INTERNAL 또는 INT
FLOAT [(number of digits)] LIKE unsubscripted reference
FORMAT LOCAL
LABEL OPTIONS(options)
MEMBER PARAMETER 또는 PARM
NONVARYING 또는 NONVAR POSITION [(expression)] 또는 POS...
OFFSET[(reference)] STATIC
PICTURE picture-specification 또는 PIC... VARIABLE
POINTER 또는 PTR
STRUCTURE
UNALIGNED 또는 UNAL
VARYING 또는 VAR

예제 프로그램 [ 編輯 ]

文字列 檢索 [ 編輯 ]

FINDSTRINGS: PROCEDURE OPTIONS(MAIN);
  /* READ A STRING, THEN PRINT EVERY */
  /* SUBSEQUENT LINE WITH A MATCH */

  DECLARE PAT VARYING CHARACTER(100),
          LINEBUF VARYING CHARACTER(100),
          (LINENO, NDFILE, IX) FIXED BINARY;

  NDFILE = 0;
  ON ENDFILE(SYSIN) NDFILE=1;
  GET EDIT(PAT) (A);
  LINENO = 1;
  DO WHILE (NDFILE=0);
    GET EDIT(LINEBUF) (A);
    IF LENGTH(LINEBUF) > 0 THEN DO;
      IX = INDEX(LINEBUF, PAT);
      IF IX > 0 THEN DO;
        PUT SKIP EDIT (LINENO,LINEBUF)(F(2),A);
      END;
    END;
    LINENO = LINENO + 1;
  END;
  END FINDSTRINGS;

制限이 없는 變數 이름 [ 編輯 ]

키워드와 同一한 이름을 變數로 쓸 수 있다.

 IF IF = THEN THEN THEN = ELSE; ELSE ELSE = IF;

같이 보기 [ 編輯 ]

各州 [ 編輯 ]

  1. Sturm, Eberhard (2009). 《The New PL/I》. Vieweg+Teubner. ISBN   978-3-8348-0726-7 .  
  2. IBM's 360 and Early 370 Systems, Emerson W. Pugh, Lyle R Johnson, John H Palmer, MIT Press , 1991
  3. The committee actually had 8 members at the time the report was released. They were:
  4. Report II of the SHARE Advanced Language Development Committee, June 25, 1964
  5. Highlights of a New Programming Language, G.Radin and H.Paul Rogoway Communications of the ACM V8 No 1, Jan 1965
  6. Vowels, Robin (2001). 《Introduction to PL/I》. x쪽. ISBN   0-9596384-9-0 . PL/I is the first language to provide adequate facilities for scientific computations, business data processing and systems programming in a single language - 辰 社멧 , Some Approaches to, and Illustrations of, Programming Language History  
  7. ANS Programming Language PL/I. X3.53-1976
  8. ANSI X3.74-1981 (R1998) Information Systems - Programming Language - PL/I General-Purpose Subset

外部 링크 [ 編輯 ]