프로그램

Prograph
프로그램
Prograph cpx logo.PNG
패러다임다중 데이터: 객체 지향, 시각적, 데이터 흐름
설계자아카디아 대학교
개발자다양한
첫 등장1983
OS크로스 플랫폼: Classic MacOS, Microsoft Windows, MacOS
면허증소유권
주요 구현
프로그램 CPX, 마텐
영향을 받은
기능 프로그래밍, 데이터 흐름도

프로그램(Programaph)은 시각적, 객체 지향적, 데이터 흐름, 다중 문자 프로그래밍 언어로, 데이터에 대해 취할 조치를 나타내기 위해 상징적 기호를 사용한다.Prograph Classic과 Prograph CPX와 같은 상용 프로그램 소프트웨어 개발 환경은 애플 매킨토시윈도우 플랫폼에서 수년간 사용 가능했으나 1990년대 후반에 결국 시장에서 철수되었다.최근 마텐 소프트웨어 개발 환경이 출시되면서 MacOS의 Prograph 언어에 대한 지원이 다시 나타나고 있다.[1]

역사

프로그램 연구는 1982년 마이클 레빈이 진행한 기능 언어 세미나에서 자극을 받아 아카디아 대학에서 데이터 흐름 언어에 대한 일반적인 조사로 시작되었다.도표는 토론을 명확히 하기 위해 사용되었고, "도표가 코드보다 더 명확하니 도표 자체를 실행 가능하게 만드는 것이 어떻겠는가!"라는 통찰로 이어졌다.따라서 Programp - Programming in Graphics는 시각 데이터 흐름 언어로 태어났다.이 일은 박사가 주도했다.Tomasz Pietrzykowski, Stan Matwin과 Thomas Muldner가 초기 논문을 공동 집필했다.1983년부터 1985년까지 연구 프로토타입은 Three Rivers PERQ 그래픽 워크스테이션(Pascal에서는 데이터가 데이터링크 아래로 움직이는 불덩이로 시각화됨)과 Tektronix 터미널이 있는 VAX에 구축되었으며, 실험 컴파일러는 IBM PC에 프로그래밍되었다.이 작업은 Pietrzykowski와 Philip Cox 박사의 노바스코샤 공과대학에서 프롤로그에서 한 버전을 포함하여 계속되었다.

1985년 매킨토시에서 상용화가 가능한 프로토타입에 대한 작업이 시작되었는데, 매킨토시는 당시 이용 가능한 높은 수준의 그래픽을 지원하는 유일한 보급형 저가형 컴퓨터였다.1986년 초, 이 프로토타입은 상용화를 위해 The Gunakara Sun Systems (TGS Systems로 개칭)에 의해 인수되었고, TGS는 이전에는 아카디아 대학교의 피에트르지코프스키에 의해 설립된 컨설팅 회사였다.피에트르지코프스키, 콕스와 함께 일하면서 테리 킬쇼는 짐 라스키를 선두 개발자로 하여 독창적인 개발팀을 고용하고 관리했다.1987년 Mark Szpakowski는 시각 데이터 흐름과 객체 지향성의 통합을 제안하여 "객체 흐름" 시스템을 만들었다.거의 4년간의 개발 끝에 1989년 10월 뉴올리언스에서 열린 OOPSLA 컨퍼런스에서 첫 번째 상용 버전인 v1.2가 소개되었다.이 제품은 1989년 MacUser Editor's Choice Award for Best Development Tool을 수상했다.1990년 7월에 출시된 버전 2.0은 시스템에 컴파일러를 추가했다.

TGS는 1990년 프로그램 인터내셔널(PI)으로 이름을 바꿨다.비록 판매는 느렸지만, 완전히 교차 플랫폼 애플리케이션을 구축하기 위한 프로그램 CPX(Cross-Platform eXtensions)는 1992년에 개발되었다.이 버전은 1993년에 출시되었고, 곧바로 클라이언트-서버 애플리케이션 프레임워크의 개발이 뒤따랐다.매출 증가에도 불구하고 회사는 운영비를 유지할 수 없었고, 1994년 말 자금 조달 시도가 실패하자 1995년 초 경영에 들어갔다.

법정관리가 진행되면서 PI의 경영진과 임직원들은 PI의 자산을 인수하는 새로운 회사인 픽토리우스를 결성했다.그 직후, Prograph CPX의 윈도우 버전 개발이 시작되었다.비록 그것이 공식적으로 공개되지는 않았지만, 윈도우 프로그램 버전들은 정기적으로 프로그램 CPX 고객들에게 제공되었고, 그들 중 몇몇은 매킨토시 프로그램들에 쓰여진 기존 어플리케이션들을 포팅하여 성공하는 정도가 다양했다.

새로운 회사의 경영진이 바뀐 후, 강조점은 도구 개발에서 맞춤형 프로그래밍과 웹 애플리케이션 개발로 옮겨갔다.2002년 4월 버뮤다의 파라곤 테크놀로지 그룹(Paragon Technology Group)에 의해 회사의 웹 개발 부분이 인수되어 파라곤 캐나다(Paragon Canada)로 개칭되었다.Pictorius 이름과 Prograph 소스 코드에 대한 권한은 Pictorius에 많은 자금을 지원했던 토론토 소재 투자 회사인 McLean Watson Capital에 의해 유지되었다.픽토리우스에 대한 언급은 전자의 포트폴리오 페이지에 한동안 등장했지만, 그 이후 사라졌다.윈도 버전의 CPX는 나중에 무료로 사용할 수 있도록 출시되었으며, 픽토리우스 웹사이트의 잔재물(아래 링크)에서 한동안 다운로드를 받을 수 있었다.

Prograph 사용자 그룹("Prographers")은 애플과 마이크로소프트의 OS 진전에 직면하여 Prograph를 계속 실현시킬 목적으로 1990년대 후반에 결성된 OPI(Open Prograph Initiative)라고 부른다.한동안 이 그룹은 Prograph의 후계자 역할을 할 새로운 오픈 소스 비주얼 프로그래밍 언어를 만들려고 노력했지만, 안데스코티아의 마르텐 비주얼 프로그래밍 환경이 등장하면서 그룹 참여는 근본적으로 중단되었다.

프로그램 언어는 Andescotia Software의 Marten IDE에 의해 지원된다.[1]

설명

프로그램 개체.모든 이미지 제공: MacTech

1970년대에는 프로그램의 복잡성이 상당히 커지고 있었지만, 프로그램을 작성하기 위해 사용된 도구는 일반적으로 1960년대에 사용된 도구와 유사했다.이로 인해 대형 프로젝트를 진행할 때 문제가 발생했는데, 이는 너무 복잡해져서 간단한 변화라도 충분히 이해하기 어려운 부작용을 낳을 수 있다.이 문제에 대한 상당한 연구는 많은 사람들로 하여금 기존의 프로그래밍 시스템이 프로그램의 논리에 초점을 맞춘 반면, 실제로는 프로그램의 목적은 데이터를 조작하는 것이라고 느끼게 했다.조작되고 있는 데이터가 프로그램의 중요한 측면이라면 왜 그 데이터가 프로그래밍 언어의 "1등 시민"이 되지 않는가?그 기반 위에서 작업하면서 객체 지향 프로그래밍과 데이터 흐름 프로그래밍을 포함한 다수의 새로운 프로그래밍 시스템이 진화했다.

Prograph는 이러한 개념을 더욱 발전시켜, 객체 지향적인 방법론과 프로그래밍을 위한 완전히 시각적인 환경의 조합을 도입했다.물체는 데이터 필드를 포함하는 한 면과 그에 작용하는 다른 방법을 포함하는 두 면의 육각체로 표현된다.예를 들어, 변수 측면을 열면 클래스 변수가 맨 위에 표시되고 인스턴스(instance) 변수가 아래에 표시되며, 물체에 대한 세부 정보가 표시된 창이 열린다.메소드 쪽을 두 번 클릭하면 이 클래스에서 구현된 메소드뿐만 아니라 슈퍼클래스에서 물려받은 메소드도 나타난다.메서드 자체를 더블클릭하면 논리를 표시하는 다른 창으로 열린다.

프로그램 데이터베이스 작업.방법 구현

프로그램에서는 각 아이콘에 지시사항(또는 지시사항 그룹)이 포함된 일련의 아이콘으로 메소드를 표시한다.각 방법 내에서 데이터의 흐름은 지시된 그래프에 선으로 표시된다.데이터는 도표 상단에 흐르고, 다양한 지시사항을 통과하며, 결국 하단으로 다시 흘러 나온다(출력이 있는 경우).

프로그램 시스템의 몇 가지 특징은 이 데이터베이스 정렬 작업 그림에서 분명히 나타난다.위쪽 막대는 이 방법이concurrent sort는 단일 매개변수로 전달되고 있다.A Database Object이 물체는 선을 통해 여러 작업에 공급된다.이 중 3개의 추출물이 명명된 인덱스(Index)를 추출한다.indexA등)을 사용하여 물체로부터getter연산(연결되지 않은 getter 출력이 "sort" 객체에 전달됨), 추출된 인덱스를 정렬 작업에 전달함.이러한 분류 작업의 출력은 원본 데이터베이스에 대한 참조와 함께 최종 작업에 전달된다.update database. 그림 하단의 막대는 이 방법의 출력을 나타내며, 이 경우에는 연결이 없으므로 이 방법은 값을 반환하지 않는다.또한 이것은 어떤 계급의 방법이지만, 존재하지 않는다는 점에 유의한다.self; 만약 자아가 필요하다면, 그것은 입력으로 제공되거나 올려다볼 수 있다.

프로그램 운영자 및 컨트롤

데이터 흐름 언어로 모든 연결에 대한 유효한 입력을 얻는 즉시 작업을 수행할 수 있다.즉, 전통적 용어로 이 방법의 각 조작이 동시에 수행될 수 있음을 의미한다.데이터베이스 예제에서, 컴퓨터가 데이터를 제공할 수 있는 경우 모든 종류의 작업이 동시에 발생할 수 있다.데이터 흐름 언어는 본질적으로 동시적인 경향이 있는데, 이는 1980년대에 이 언어가 많은 관심을 얻은 이유 중 하나인 "자연적으로" 다중 프로세서 시스템에서 실행할 수 있다는 것을 의미한다.

루프와 분기는 주석을 사용하여 연산을 수정하여 생성된다.예를 들어, 루프는doit입력 데이터 목록의 메소드는 먼저 도트 연산자에서 끌어서 루프 한정자를 부착하고 루프에 입력으로 목록을 제공하는 방식으로 구성된다.또 다른 주석인 "주입"은 방법 자체를 입력으로 제공할 수 있게 하여 Prograph를 어느 정도 역동적인 언어로 만든다.

실행

통합 프로그램 개발 및 실행 환경은 시각적 디버깅에도 허용되었다.일반적인 중단점과 단단계 메커니즘이 지원되었다.데이터 흐름도의 각 작업은 실행하면서 시각적으로 강조되었다.디버그 모드에서 정지했을 때 데이터 링크 위에 마우스를 고정했을 때 툴팁과 같은 메커니즘이 데이터 값을 표시했다.롤백 및 롤포워드 실행 모두에 허용되는 실행 스택의 시각적 표시.많은 사용자들에게 언어의 시각적 실행 측면은 편집 시간 그래픽 시설만큼이나 중요했다.

가장 중요한 런타임 디버깅 기능은 디버깅하는 동안 코드를 즉시 변경할 수 있는 기능이었다.이를 통해 다시 컴파일할 필요 없이 디버깅하는 동안 버그를 수정할 수 있었다.

비평

프로그램 시스템의 몇 가지 문제점은 이 방법 구현에서도 명백하다.

프로그램 코드는 라벨을 사용하여 주석 처리될 수 있다.초기 버전에서는 포함된 클래스의 대부분이 레이블이 지정되지 않았다.방법의 적절한 입력을 결정하기 위해 설명서를 참조해야 하는 경우가 많았다.이는 후속 버전에서 주로 다루어졌지만, 코멘트가 방법이 어떻게 작동하고 왜 작동하는지 설명할 정도로 방법은 문서화되지 않았다.

개발자들은 다이어그램 코드를 청결하게 유지하기 위해 배선 및 코멘트 입력과 출력에 주의를 기울여야 했다.위의 Prograph Database Operation 예에서, 입력 바의 와이어 중 하나가 업데이트 작업의 특정 입력으로 흘러야 하기 때문에 두 개의 경로가 교차한다.이것은 단순히 'indexA'와 'sort' 아이콘들을 가장 왼쪽 철사 안에 끌어다 놓음으로써 피할 수 있었지만, 일반적으로는 이런 종류의 문자 그대로의 스파게티 코드를 피할 방법이 없었다.

또 다른 문제는 창문이 넘쳐나는 것이었다.Prograph 작업공간을 이동할 때 IDE는 일반적으로 메서드의 내용을 볼 수 있는 새로운 창을 열어야 했다.

참고 항목

추가 읽기

  • Cox, P.T.; Pietrzykowski, T. (1984), "Advanced Programming Aids in Prograph", Technical Report 8408, Halifax, Nova Scotia: School of Computer Science, Technical University of Nova Scotia.
  • Cox, P.T.; Mulligan, I.J. (1984), "Compiling the graphical functional language Prograph", Technical Report 8402, Halifax, Nova Scotia: School of Computer Science, Technical University of Nova Scotia.
  • Matwin, S.; Pietrzykowski, T. (1985), "Prograph: A Preliminary Report", Computer Languages, 10 (2): 91–126, doi:10.1016/0096-0551(85)90002-5.
  • Kilshaw, Terry (May 1991), "Prograph Primitives", MacTech Magazine, 7 (5).
  • Kilshaw, Terry (January 1992), "Prograph 2.5", MacTech Magazine, 8 (1).
  • Kilshaw, Terry (January 1993), "A Pictorial Button Class in Prograph", MacTech Magazine, 9 (1).
  • Kilshaw, Terry (March 1994), "A Review of Prograph CPX 1.0", MacTech Magazine, 10 (3): 64–74.
  • Schmucker, Kurt (November 1994), "Prograph CPX - A Tutorial", MacTech Magazine, 10 (11).
  • Shafer, Dan (1994), The Power of Prograph CPX, U.S.A: The Reader Network, ISBN 1-881513-02-5.
  • Schmucker, Kurt (January 1995), "Commands and Undo in Prograph CPX", MacTech Magazine, 11 (1).
  • Schmucker, Kurt (March 1995), "Filters & Sieves in Prograph CPX", MacTech Magazine, 11 (3).
  • Schmucker, Kurt (May 1995), "MacApp and Prograph CPX - A Comparison", MacTech Magazine, 11 (5).

참조

  1. ^ a b "Products : Marten IDE 1.6". Andescotia Software. Retrieved 2019-05-31.

외부 링크