캐더
Sather성을 가진 사람은 Sather(surname)를 참조하십시오.
| 패러다임 | 객체 지향, 기능적 |
|---|---|
| 설계자 | 스티브 오모훈드로 |
| 개발자 | 캘리포니아 대학교 버클리, 와이카토 대학교 GNU 프로젝트 |
| 첫 등장 | 1990 |
| 안정적 해제 | 1.2.3[1] / 2007년 7월 7일; 전( 7일 |
| 타이핑 규율 | 정적인 |
| 웹사이트 | www |
| 주요 구현 | |
| ICSI Sather, GNU Sather | |
| 영향을 받은 | |
| 에펠, CLU, 커먼 리스프, 스키마 | |
| 영향받은 | |
| 멋지다 | |
사더는 객체 지향 프로그래밍 언어다.1990년 경에 스티브 오모훈드로가 이끄는 국제팀이 개발한 버클리 캘리포니아 대학의 국제 컴퓨터 과학 연구소(ICSI)에서 시작되었다.하위 유형별 가비지 수집 및 생성 기능을 지원한다.
원래는 에펠을 기반으로 했지만, 지금은 몇 가지 기능적인 프로그래밍 기능을 포함하고 있다.
이 이름은 에펠에서 영감을 받아 지어졌다; 새터 타워는 버클리 대학교의 재단에 거액을 기부한 페더 새더의 미망인 제인 크롬 새더의 이름을 딴 유명한 건물이다.
사더는 또한 다른 프로그래밍 언어와 패러다임에서 영감을 얻는다: 반복자, 계약에 의한 디자인, 추상적인 클래스, 다중 상속, 익명 기능, 운영자 과부하, 역행형 시스템.
원래의 버클리 구현(마지막 안정적 버전 1.1은 1995년에 출시되었고, 더 이상[2] 유지되지 않음)은 자유 소프트웨어 재단에 의해 채택되어 GNU Sather가 되었다.마지막 안정적 GNU 버전(1.2.3)은 2007년[3] 7월에 출시되었으며 현재 소프트웨어는 유지되고 있지 않다.여러가지 다른 변형:Sather-K 대학원 소속 중의[4][5]Sather-W 대학 Waikato[6]의(세이더 버전 1.3의 구현), ICSI를 세이더 피터 Naulls의 항만 1.1리스크 OS로;[7]과 ICSI를 세이더 선의 평행 버전 pSather,[8][9]지만 현재의 불균일 기억 장치 접근 다중 처리기 구조하다.공유 메모 ing나는 프로그래머에게 모델을 제시한다.
이전의 ICSI Sather 컴파일러(현재의 GNU Sather)는 C에 대한 컴파일러로 구현된다. 즉, 컴파일러는 객체나 기계코드를 출력하지 않고 Sather 소스 코드를 가져가고 C 소스 코드를 중간 언어로 생성한다.최적화는 C 컴파일러에게 맡긴다.
그 자체로 쓰여진 GNU Sather 컴파일러는 GNU GPL&LGPL에 따라 이중 라이선스 되어 있다.
안녕 세계
계급 HELLO_WORLD 이다 본래의 이다 #아웃+"헬로 월드\n"; 종지부를 찍다; 종지부를 찍다; 몇 가지 언급:
- 클래스 이름은 ALL CAPS이다. 이것은 관습일 뿐만 아니라 컴파일러에 의해 강제된다.
- 메소드가 불렀다.
main실행의 시작점이다.어느 등급에 속할 수도 있지만, 이것이 다른 것이라면.MAIN컴파일러 옵션으로 지정해야 한다. #생성자 기호:그것은 "라고 불린다.create연산자 이름을 따르는 클래스 방법.이 예에서는, 이 예제를 통해OUT클래스, 즉 표준 출력의 클래스.- 그
+연산자가 인수로 전달된 문자열을 스트림에 추가하기 위해 클래스에 의해 오버로드됨. - 다음과 같은 연산자
+일반적으로 명명된 메서드 호출을 위한 통사적 설탕:a + b의 약자a.plus(b). 일반적인 산술 우선 규약은 복잡한 공식에서 방법의 호출 순서를 해결하기 위해 사용된다.
반복기 예제
이 프로그램은 1부터 10까지의 숫자를 출력한다.
계급 메인 이다 본래의 이다 고리를 틀다 i := 1.까지!(10); #아웃 + i + "\n"; 종지부를 찍다; 종지부를 찍다; 종지부를 찍다; 그loop...end구문은 루프를 정의하는 선호 수단이다.while그리고repeat-until또한 이용할 수 있다.구조 내에서 하나 이상의 반복자를 사용할 수 있다.반복기 이름은 항상 느낌표로 끝난다. (이 규칙은 컴파일러에 의해 시행된다.) upto!의 방법이다.INT수업 수락once반복자가 양보해도 그 가치는 변하지 않는다는 뜻의 주장. upto!에 구현될 수 있음INT다음 코드와 비슷한 코드로 수업한다.
까지!(한 번 m:INT):동일 이다 i: INT := 자아의; ­ 자신을 가치 있게 상상하고, -- 이 방법이 불리는 정수 고리를 틀다 만일 i>m 그때 그만두다; ­ m을 넘어서면 루프를 떠나다 종지부를 찍다; 양보하다 i; -- 그렇지 않으면 i를 반환 값으로 사용하고 루프에 머무르십시오. i := i + 1; - 및 증분 종지부를 찍다; 종지부를 찍다; 변수에 대한 유형 정보는 사후 처리 구문으로 표시됨variable:CLASS형식은 종종 유추될 수 있고 따라서 타이핑 정보는 다음과 같이 선택적이다.anInteger::=1.SAME현재 클래스를 참조하는 사이비 클래스.
참조
- ^ https://directory.fsf.org/wiki/sather.
- ^ "ICSI Sather future plans".
- ^ "GNU Sather downloads".
- ^ Sather-K 프로젝트 페이지(2001년부터 보관)
- ^ "Sather-K 0.9 download, version from year 1994".
- ^ Sather-W 1.3 프로젝트 페이지(2002년부터 보관된 링크)
- ^ 피터 나울스의 포트는 더 이상 웹에서 이용할 수 없다.
- ^ "pSather description".
- ^ "pSather download".