포트리스(프로그래밍 언어)
Fortress (programming language)![]() | 이 문서의 외부 링크 사용은 Wikipedia의 정책 또는 지침을 따르지 않을 수 있습니다.(2016년 9월 (이 및 ) |
개발자 | Sun 연구실 |
---|---|
처음 등장한 | 2006 |
최종 릴리즈 | 1.0_5033 / 2011년 9월 7일, 전( |
타이핑 분야 | 스태틱 |
플랫폼 | Java SE 1.6 이상 |
OS | 크로스 플랫폼 |
면허증. | BSD |
웹 사이트 | github |
영향을 받다 | |
포트란, 스칼라, 하스켈 |
Fortress는 DARPA의 High Productivity Computing Systems 프로젝트 자금으로 Sun Microsystems가 개발한 고성능 컴퓨팅용 실험 프로그래밍 언어입니다.언어 디자이너 중 한 명은 Guy L. Steel Jr.로, 그의 이전 작품에는 Scheme, Common Lisp, Java가 포함되어 있습니다.
설계.
"포트리스"라는 이름은 안전한 Fortran, 즉 "현대 프로그래밍 언어 [1]원리와 동등한 수준의 추상화 및 형식 안전성을 제공하는 고성능 컴퓨팅을 위한 언어"를 의미하기 위한 것입니다.언어 기능에는 암묵적 병렬화, 유니코드 지원 및 수학적 표기법과 유사한 구체적인 구문이 포함되어 있습니다.이 언어는 Fortran과 유사하게 설계되지 않았습니다.구문적으로는 Scala, Standard ML 및 Haskell과 가장 유사합니다.요새는 처음부터 통사적인 스타일시트를 여러 개 갖추도록 설계되었다.소스 코드는 ASCII 텍스트, 유니코드 또는 예쁜 이미지로 렌더링할 수 있습니다.이를 통해 더 쉽게 읽을 수 있도록 렌더링된 출력에서 수리 기호 및 기타 기호를 지원할 수 있습니다.fortify라는emacs 기반 툴은 ASCII 기반 포트리스 소스 코드를 LaTeX [2]출력으로 변환합니다.
포트리스는 또한 자바에서 가져온 고도의 병렬성을 갖추고 풍부한 기능을 갖추도록 설계되었다.예를 들어,for
loop constructure는 기본 구현에 따라 엄격히 선형적인 방식으로 반복되지 않는 병렬 연산입니다.하지만, 그for
constructure는 라이브러리 함수이며 언어에 내장되어 있는 것이 아니라 프로그래머가 좋아하는 다른 버전으로 대체될 수 있습니다.
포트리스의 설계자들은 가능한 한 의사 코드에 가까운 구문을 만들고 의사 코드로 알고리즘을 나타낼 때 영어의 공통 사용 패턴과 표준 수학 표기법을 추출하기 위해 의사 코드로 수백 개의 컴퓨터 과학 및 수학 논문, 과정, 책, 저널을 분석했다.그런 다음 그들은 유사 코드와 실행 가능한 [3][better source needed]포트리스 사이의 일대일 대응 관계를 유지하려고 컴파일러를 만들었습니다.
역사
Fortress는 High Productivity Computing Systems 프로젝트의 자금으로 만들어진 3개 언어 중 하나이며, 다른 언어로는 IBM의 X10과 Cray, Inc.의 Chapel이 있습니다.2006년 11월 DARPA가 HPCS 프로젝트의 3단계에 대한 자금 지원을 승인했을 때 X10과 Chapel은 자금을 지원받았지만 [4]Fortress는 그렇지 않아 Fortress의 미래에 대한 불확실성으로 이어졌습니다.
2007년 1월 포트리스는 오픈 [5]소스로 출시되었습니다.포트리스 언어 사양 버전 1.0은 Java Virtual Machine을 대상으로 한 준거 구현과 함께 2008년 4월에 출시되었습니다.
2012년 7월 Steel은 기존 가상 [6]머신에서 Fortress의 유형 시스템을 사용하는 것이 어렵다는 점을 들어 Fortress의 활성 개발이 잠시 종료될 것이라고 발표했습니다.
예:헬로 월드!
이것은 포트리스 레퍼런스 [2]카드에 제시된 전형적인 hello 월드 프로그램의 포트리스 버전입니다.
component hello export 실행 파일 run() = println("Hello, World!"") 끝
export 스테이트먼트는 프로그램을 실행 가능하게 하고 Portress 내의 모든 실행 가능 프로그램은 run() 함수를 구현해야 합니다.컴파일을 위해 프로그램을 저장하는 파일은 첫 번째 컴포넌트 문에 지정된 파일과 이름이 같아야 합니다.println() 함수는 화면에 "Hello, World!" 단어를 출력합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Eric Allen; David Chase; Joe Hallett; Victor Luchangco; Jan-Willem Maessen; Sukyoung Ryu; Guy L. Steele Jr.; Sam Tobin-Hochstadt; et al. (2008-03-31). "The Fortress Language Specification: Version 1.0" (PDF). research.sun.com. Sun Microsystems. Archived from the original (PDF) on 2013-01-20.
- ^ a b "Project Fortress Reference Card" (PDF). Java.net. Archived from the original (PDF) on 2016-03-04. Retrieved 2016-09-24.
- ^ "pseudocode - Standards for pseudo code?". Stack Overflow. 2009-10-16. Retrieved 2016-09-24.
- ^ Josh Simons (November 22, 2006). "Sun Not Selected for HPCS Phase III: My Thoughts". The Navel of Narcissus. Archived from the original on 2012-01-06 – via blogs.oracle.com.
- ^ "What's Cool about Fortress". gbcacm.org. Greater Boston Chapter of the ACM. Archived from the original on 2012-08-02.
- ^ Gls-Oracle (2012-07-20). "Fortress Wrapping Up". Project Fortress. Archived from the original on 2016-09-24 – via blogs.oracle.com.
외부 링크
- 프로젝트 포트리스 웹사이트
- 사양 및 참조 구현의 활성 일정
- 포트리스 언어 사양 (최신 버전은 1.0, 2008년 3월 31일)
- 포트리스의 영혼 - 포트리스 개발자 가이 스틸과의 인터뷰
- 포트리스 오픈 소스 프로젝트 홈(BSD 라이선스)
- Sun의 프로그래밍 언어 연구 그룹
- 포트리스 관련 자료 및 사양
- 이클립스용 포트리스 플러그인(알파)
- 포트리스 FAQ
- 포트리스 튜토리얼 슬라이드
- 포트리스 메일링 리스트
- 람다 더 얼티밋 기사
- Sun의 Fortran 교체는 오픈 소스화된다(CNET News.com, 2007년 1월 12일)
- 포트리스 프레젠테이션
- 기본적으로 병렬 - 주석이 있는 포트리스 개요 프레젠테이션