하이퍼토크
HyperTalk이 문서의 어조나 문체는 위키피디아에서 사용되는 백과사전적 어조를 반영하지 못할 수 있습니다.그 이유는 기사가 진행됨에 따라 표현이 덜 형식적이 되는 경향이 있기 때문입니다. Wikipedia 하십시오.(2017년 12월 (이메시지 및 시기 ) |
| 패러다임 | 프로시저, 이벤트 주도형 |
|---|---|
| 설계자 | 댄 윙클러 |
| 개발자 | 애플 컴퓨터 주식회사 |
| 처음 등장한 | 표준 |
| 영향을 받다 | |
| 자연어 프로그래밍, 파스칼 | |
| 영향받은 | |
| ActionScript, AppleScript, ECMAScript, JavaScript, Lingo, LiveCode, SenseTalk, SuperTalk | |
HyperTalk는 1987년 Dan Winkler에 의해 개발되었으며, Bill Atkinson에 의해 Apple Computer의 HyperCard 하이퍼미디어 프로그램과 함께 사용되었습니다.HyperTalk의 주요 타깃은 초보 프로그래머였기 때문에 HyperTalk 프로그래머는 보통 "작자"라고 불렸고 프로그램을 작성하는 과정은 "스크립팅"이라고 불렸습니다.HyperTalk 스크립트는 영어로 쓰여진 것과 비슷했고 파스칼 프로그래밍 언어와 유사한 논리 구조를 사용했습니다.
HyperTalk는 프로시저 언어의 기본적인 제어 구조를 지원했습니다.즉, 함수 및 메시지 "핸들러" 호출(함수 핸들러는 서브루틴이었고 메시지 핸들러는 프로시저였습니다).일반적으로 데이터 유형은 프로그래머가 지정할 필요가 없습니다. 변환은 문자열과 숫자 사이에서 백그라운드에서 투명하게 수행됩니다.전통적인 의미의 클래스나 데이터 구조는 없었습니다.그 대신 특수 문자열 리터럴 또는 쉼표로 구분된 "항목"의 "목록"이 있었습니다(이후 버전에서는 "item Delimiter" 속성을 사용하여 임의의 문자를 선택할 수 있었습니다).코드 실행은 일반적으로 UI 위젯에서 마우스 클릭과 같은 이벤트에 대한 응답으로 시작되었습니다.
1980년대 후반에 애플은 HyperCard의 HyperTalk 스크립트 언어를 회사 전체 및 자사의 클래식 Mac OS 운영 체제 내에서 표준 언어로 사용하는 것뿐만 아니라 애플과 애플 이외의 제품 간의 프로세스 간 통신에도 사용할 것을 고려했습니다[1].이 회사는 SuperCard와 같은 모조품 개발에 반대하지는 않았지만,[1] 언어 변형 간의 호환성을 피하기 위해 HyperTalk Standards Committee를 만들었다.대소문자를 구분하지 않는 언어가 처음에는 해석되었지만 HyperCard 2.0을 [2]통해 적시에 컴파일되었습니다.
묘사
기본 조작
수학적 계산을 포함한 대부분의 기본 연산에서 HyperTalk는 수학적 표기법에 사용되는 순서보다 자연 언어의 술어 순서를 선호했다.예를 들어 HyperTalk의 경우putassignment 명령어. 변수는 문의 끝에 배치됩니다.
놓다 5 * 4 안으로 결과 보다 전통적인 BASIC 프로그래밍 언어(및 기타 대부분의 언어)에서는 다음과 같이 기술함으로써 동일한 작업을 수행할 수 있습니다.
결과 = 5 * 4 HyperTalk 코드는 변수 theResult on the fly를 생성하는 부작용이 있습니다.스크립트는 다음을 사용하여 변수에 모든 유형 또는 값을 할당할 수 있습니다.put 명령어를 사용하여 HyperTalk의 입력이 매우 약해집니다.변수 유형 간의 변환은 보이지 않고 자동으로 이루어집니다. 문자열 "3"에 숫자 5를 곱하여 숫자 15를 생성하거나 문자열 "3"에 숫자 5를 연결하여 문자열 "35"를 생성할 수 있습니다.HyperTalk는 이러한 유형을 자동으로 변환할 수 없는 한 불평을 하지 않을 것이다.
흐름 제어와 로직은 일반적으로 다른 공통 언어와 유사하며,if ... then ... else ... end if유연성에 기초한 조건부 및 지지 루프를 위한 구조repeat ... end repeat구문을 사용합니다.코멘트는 두 개의 마이너스 기호로 선두에 배치되었다.-- this is a comment.
오브젝트, 컨테이너 및 스크립트
하이퍼카드의 주요 사용자 인터페이스 개념은 인덱스 카드를 에뮬레이트하는 디스플레이 시스템인 카드였다.카드는 보통 정보를 저장하기 위해 사용되었으며, 이는 기존의 플랫 파일 데이터베이스에 있는 기록과 유사합니다.카드의 그래픽 레이아웃은 텍스트 필드 및 버튼과 같은 다양한 요소를 카드에 배치하여 마우스를 사용하여 작성되었습니다.각 카드의 투명 영역 뒤에 배경으로 알려진 마스터 레이아웃 "카드"가 표시되었습니다.필드나 버튼 등 배경에 배치된 오브젝트는 여러 카드 간에 공통 레이아웃으로 공유되지만 카드 고유의 콘텐츠와 공유됩니다.카드 모음, 배경 및 여기에 저장된 관련 데이터는 (카드 스택이라고 하는) 단일 파일에 저장되었습니다.이러한 데이터를 포함하는 모든 개체를 통칭하여 컨테이너라고 합니다.
HyperTalk 함수(스크립트)는 보통 다음 중 하나에 저장되어 있습니다.script여러 스택의 컨테이너에서 사용할 수 있는 속성입니다.스크립트는 다음을 사용하여 인스턴스 변수에 대응하는 컨테이너 속성에 액세스할 수 있습니다.get그리고.set지침들.스크립트 속성에는 플레인텍스트가 포함되어 있으며 특별한 속성은 없습니다.스크립트는 문자열 [a]변수를 포함한 임의의 텍스트컨테이너에 배치 및 실행할 수 있으며, 를 사용하여 다른 스택에서 Import할 수 있습니다.start using명령어를 입력합니다.스크립트는 사용자가 제공한 텍스트로 화면의 텍스트 필드에 입력할 수도 있습니다.임의의 텍스트는 다음 명령을 사용하여 실행할 수 있습니다.doDynamic [3]SQL과 유사한 방법으로 명령어를 실행합니다.
컨테이너 참조
HyperTalk의 주요 개념은 스택의 시각적 계층에 기반한 탐색 시스템을 통해 컨테이너를 참조하는 방식입니다.스택 내의 모든 컨테이너에는 생성 시 고유 ID 번호가 지정되며 옵션 이름을 지정할 수도 있습니다.스크립트는 이러한 식별자 중 하나를 사용하여 오브젝트를 참조할 수 있습니다.또한 이 ID와 를 사용하여 지정된 오브젝트 타입도of교환입니다.이 연산자는 읽기 쉽고 자체 문서화된 코드를 만들기 위해 자연어 구문을 사용했습니다.예를 들어, 카드의 버튼에 저장된 스크립트는 텍스트필드를 사용하여 수집된 사용자 지정 텍스트를 가져와 Value라고 하는 변수에 저장할 수 있습니다.
놓다 그 가치 의 카드 들판 "여기에 입력" 안으로 가치 문장의 다양한 맥락적 측면은 통역자에 의해 추론될 수 있었다.예를 들어 위의 스테이트먼트에서는 스크립트는 특정 카드 상의 버튼 컨텍스트에서 실행되기 때문에 ID 카드는 버튼 자체가 일반적으로 백그라운드에 있는 경우에도 사용자가 대화하고 있는 카드를 나타내는 것으로 이해되고 있습니다.또한 "값"(사용자가 제출한 텍스트)이 주 속성이며 달리 명시되지 않은 경우 운영 대상으로 가정했다.마찬가지로, "카드 필드"는 배경 필드가 아닌 명령어 대상으로 간주되어 정보를 생략할 수 있습니다.컨테이너 타입도 프로그래머가 타이핑을 저장하는 데 사용할 수 있는 짧은 형식이었습니다.따라서 위의 코드는 짧은 형식과 동일합니다.
놓다 fld "여기에 입력" 안으로 가치 예를 들어 카드나 배경과 같은 특정 컨텍스트 내의 객체에도 화면상의 z 순서에 따라 런타임 번호가 지정되었습니다.또한 HyperTalk는 내비게이션에 대한 위치를 사용하기 위해 구문을 더욱 단순화하는 다양한 서수 및 기본 참조 시스템을 포함했습니다.카드의 "typehere" 필드가 유일한 필드라고 가정하면 위의 코드도 다음과 같이 기록될 수 있습니다.
놓다 그 첫번째 카드 들판 안으로 가치 또는 다음과 같이 입력합니다.
놓다 카드 들판 1 안으로 가치 어드레싱 스타일의 선택은 프로그래머에게 맡겨졌습니다.코드의 가독성을 높이기 위해, 다른 문장에서 다른 스타일이 사용되는 경우가 많았습니다.
HyperTalk에 포함된me같은 방식으로 작용한 용기self대부분의 개체 지향 언어에서 볼 수 있는 한정자로, 현재 컨테이너 개체에 쉽게 액세스할 수 있습니다.그다지 흔하지 않은 것은itvariable: 특정 빌트인 연산자의 마지막 연산 값을 유지합니다.예를 들어 다음과 같습니다.
물어보다 "가치란 무엇인가?" 놓다 그것 안으로 카드 들판 "디스플레이" 를 사용합니다.ask대화 상자를 표시하고 텍스트 필드에 입력된 텍스트를 캡처하는 명령. 대화 상자를 누르면 대화 상자가 완료됩니다.Return 또는 을 클릭하면 값이 에 할당됩니다.it의사 처리그런 다음 이 코드는 이 값을 카드필드에 복사합니다.put할당 연산자
컬렉션
특정 유형의 컨테이너는 해당 컨테이너 유형의 복수 버전을 이름으로 하는 컬렉션으로도 사용할 수 있습니다. 카드의 필드 집합은 다음과 같습니다.card fields이 수집품들은 그 자체로 그들의 속성을 가진 컨테이너들이었다.그 중 중요한 것은number반복 및 유사한 작업 중에 널리 사용된 특성입니다.예를 들어, 카드의 모든 필드를 숨기려면 다음 코드를 사용합니다.
따라하다 와 함께 i = 1 로. 그 번호 의 카드 필드 숨다 들판 i 끝. 따라하다 이 코드는 HyperTalk의 또 다른 공통 기능을 나타냅니다.즉, 속성에 여러 개의 이름과 연산자가 있을 수 있습니다.이 경우,hide명령어 및 관련지어져 있는show, 컨테이너의 값을 설정함으로써 동작합니다.visible소유물.따라서hide field i와 정확히 동등하다set the visible of field i to false비슷한 예로는,lock screen시각적인 갱신을 정지한 명령어.이것은 의 짧은 형식입니다.set the lockscreen to true,어디에lockscreen는 HyperCard 자체의 속성이며 컨테이너이기도 합니다.이러한 종류의 구문설탕의 많은 예는 공통 코드의 구문을 단순화하고 가독성을 향상시키기 위해 HyperTalk에서 발견되었다.
HyperCard 2.2 이후에서는 컬렉션 컬렉션은 컨테이너의parts이를 통해 스크립트는 컨테이너 내의 모든 개체를 단일 반복기로 주소 지정할 수 있습니다.
취급 텍스트
HyperTalk 컨테이너 모델의 주목할 만한 특징은 텍스트 처리입니다.프로그램의 리터럴 문자열이든 텍스트 필드에 입력된 텍스트든 모든 텍스트 집합은 그 자체로 여러 개의 컨테이너 집합이 포함된 컨테이너로 간주되었습니다.이를 통해 스크립트는 다른 컨테이너와 동일한 탐색 명령을 사용하여 텍스트를 구문 분석할 수 있습니다.예를 들어 공백으로 구분된 데이터 파일을 구문 분석할 때 다음과 같이 세 번째 열을 추출할 수 있습니다.
놓다 그 셋째 단어 의 파일본문 안으로 콜 쓰리 이 구문을 사용하면 스크립트는 다음 예시와 같이 텍스트를 "워크다운"하여 특정 데이터를 찾을 수 있습니다.
놓다 그 첫번째 성격 의 그 셋째 단어 의 선 5 의 카드 들판 "외부" 안으로 차 텍스트를 컨테이너로 처리하는 이 프로세스를 "청킹"이라고 하며, 함수는 "청크 표현식"이라고 합니다.이와 같은 종류의 표현식은 일련의 파일 관리 함수와 함께 파일 조작을 처리하는 데 사용되었습니다.다음 코드는 알려진 파일을 열고, 파일에서 읽고, 데이터를 추출한 다음 파일을 닫습니다.
에 마우스 다운 정답. 파일 "열 텍스트 파일을 선택하십시오." 한다면 그것 이 빈 그리고나서 퇴장 마우스 다운 놓다 그것 안으로 파일 패스 한다면 거기. 이 a 파일 파일 패스 그리고나서 열다. 파일 파일 패스 읽어주세요 부터 파일 파일 패스 까지 돌아가다 놓다 그것 안으로 CD fld "일부 필드" 가까운. 파일 파일 패스 세트 그 텍스트 스타일 의 성격 1 로. 10 의 카드 들판 "일부 필드" 로. 대담한 끝. 한다면 끝. 마우스 다운 HyperTalk 에는 서브스트링 찾기 조작을 사용하여 스트링을 청킹하는 기능도 포함되어 있습니다.in교환입니다.다음 코드는 다음 명령어를 사용하여 특정 패턴의 모든 예를 찾습니다.in의 일부로서repeat루프, 한편offset는 문자열 내에서 해당 패턴의 위치를 검색합니다.
기능. 치환 문자열 양식,newStr,인스트루 따라하다 하는 동안에 양식 인 인스트루 놓다 오프셋(양식,인스트루) 안으로 포스 놓다 newStr 안으로 성격 포스 로. (포스 +그 길이 의 양식)-1 의 인스트루 끝. 따라하다 돌아가다 인스트루 끝. 치환 문자열 목록 및 기타 컬렉션
HyperTalk는 어레이나 목록과 같은 구조를 생성하기 위해 동일한 청킹 시스템을 사용했습니다.이러한 구조는 여러 데이터 항목을 쉼표로 구분하여 변수에 배치함으로써 생성됩니다.필요에 따라 해석되는 문자열을 사용하여 다양한 유형의 데이터를 HyperTalk 스크립트로 Import할 수 있습니다.예를 들어 화면상의 객체의 위치는 왼쪽 상단 모서리에 상대적인 X 및 Y 좌표를 나타내는 숫자의 쌍으로 정의되었습니다.다음 코드는 좌표 쌍을 유지하는 pos라는 변수를 만들고 이를 조작하여 카드의 모든 버튼을 왼쪽 위에서 오른쪽 아래로 대각선으로 재배치합니다.
에 마우스 업 놓다 "100,100" 안으로 포스 따라하다 와 함께 x = 1 로. 그 번호 의 카드 단추 세트 그 위치 의 카드 단추 x 로. 포스 더하다 15 로. 아이템 1 의 포스 끝. 따라하다 끝. 마우스 업 그item청킹 표현은 원래 콤마 딜리미터에 기반했지만, 이후 버전의 HyperCard는 이를 다음 값으로 변경했습니다.itemDelimiter임의의 리스트와 구조를 해석하는 기능을 제공합니다.
메시지 및 이벤트
HyperTalk는 오브젝트 지향의 개념을 호출 스크립트에 사용했습니다.스택 내의 오브젝트가 메시지로서 「이벤트」를 송신하는 경우, 이 오브젝트는, 「이벤트」를 사용해 이벤트를 수신한다고 선언한 핸들러에 의해서 처리됩니다.on구문을 사용합니다.예를 들어, 대부분의 GUI 컨테이너에서는,mouseDown마우스 버튼을 클릭했을 때의 메시지와mouseUp메시지가 아직 컨테이너 위에 있을 때 해제되면 스크립트는 다음과 같은 이벤트를 캡처할 수 있습니다.
에 마우스 업 -- 여기에 추가 코드를 입력합니다. 끝. 마우스 업 이벤트에 대한 메시지는 이벤트를 만든 개체의 스크립트에 처음 발송됩니다. 예를 들어 사용자가 버튼을 클릭한 경우,mouseUp메시지가 처음에 그 버튼으로 전송되었습니다.버튼의 스크립트 객체에 다음 항목이 없는 경우mouseUp핸들러(또는 스크립트 없음), 다음으로 카드, 백그라운드, 스택, 스크립트를 명시적으로 Import한 스택에 전달됩니다.start using명령어, "홈 스택"(사용자가 선택한 상시 열려 있는 HyperCard 스택), 마지막으로 하이퍼카드 애플리케이션 자체에 대한 명령어.
버튼 클릭과 같은 간단한 이벤트의 경우 스크립트는 해당 객체(버튼 자체)에 직접 배치됩니다.예를 들어 버튼 핸들러 내에서 위의 코드 예를 다음과 같이 사용할 수 있습니다.
에 마우스 업 따라하다 와 함께 i = 1 로. 그 번호 의 카드 필드 숨다 들판 i 끝. 따라하다 끝. 마우스 업 코드가 여러 장소에서 호출되거나 이벤트의 글로벌핸들러로서 사용되고 있는 경우, 스크립트는, 를 사용해 이벤트의 송신원을 판별할 수 있습니다.target기능.마찬가지로 스크립트는 다른 컨테이너로 이벤트를 전송할 수 있습니다.send명령을 수행한 다음 네비게이션 코드를 사용하여 해당 핸들러의 코드를 보관하고 있는 컨테이너를 참조합니다.
보내세요 "마우스 업" 로. 카드 단추 "OK" 의 카드 "진정성" HyperTalk의 문자열 처리와do명령어는 카드에 텍스트필드를 배치하고 필드의 스크립트에 다음 코드를 배치함으로써 인터랙티브인터프리터를 구축할 수 있습니다.
에 마우스 업 선택한다. 그 클릭라인 놓다 단어 2 의 그 클릭라인 안으로 린넨 하다 선 린넨 의 CD fld 1 끝. 마우스 업 clickLine마지막으로 클릭한 필드의 이름과 행 번호를 다음과 같은 형식으로 반환하는 글로벌 속성입니다.line 10 of card field 4이 코드는 먼저 클릭된 줄의 모든 텍스트를 선택한 후 로컬 변수로 줄 번호를 추출한 후 다음을 사용합니다.do하이퍼카드 스크립트로 텍스트를 실행합니다.
그mouseDown사용자가 클릭했을 때 메시지가 버튼으로 전송되었습니다.mouseUp사용자가 마우스 안에 있는 마우스를 놓아 동작을 트리거할 때 전송되었습니다.마찬가지로 HyperCard는 정기적으로 송신합니다.idle메세지,mouseEnter,mouseLeave, ... 및 HyperCard 스택 내의 다른 카드 간의 네비게이션 및 사용자 입력과 관련된 기타 다양한 메시지(keyDown,functionKey, ...) 및 시스템이벤트.스크립터에 관한 한 다른 프로시저 프로그래밍 언어처럼 메인 이벤트 루프는 없었습니다.
하이퍼카드 제어
일반적인 고속 애플리케이션 개발 플랫폼과는 달리 HyperCard 스택은 항상 스택처럼 보였습니다.메뉴바는 프로그래머가 아닌 HyperCard(디폴트로는 스크립트 작성으로 메뉴를 추가, 삭제 및 변경할 수 있습니다), 단일 창은 고정 크기(초기 버전에서는)였으며 경우에 따라서는 조작에 중요한 명령어가 있었습니다.애플리케이션 자체이며 HyperTalk 자체에서는 직접 사용할 수 없습니다.
그 좋은 예로는 새로운 카드를 만든 것이 있습니다.이것은 애플리케이션의 일부이며, HyperTalk 언어 자체에서는 직접 액세스 할 수 없습니다.새 카드는 [New Card]메뉴 항목을 사용해야만 만들 수 있습니다.이 메뉴 항목은 를 사용하여 코드로 시뮬레이트할 수 있습니다.doMenu "New Card"HyperTalk에서 메뉴 명령어를 호출하는 동안 메뉴 명령어는 HyperTalk에서 핸들러를 호출하기도 했습니다.[복사(Copy)]메뉴 항목을 선택했을 때 커스텀코드를 실행하려면 다음 명령을 사용하여 스택에 스크립트를 배치합니다.on doMenu itemName핸들러, 그 후itemName'복사'인지 확인하려고요.
HyperTalk는 또한 내장된 그리기 도구에 대한 스크립트 제어를 제공했습니다. 단순히 페인트 도구의 필요한 변경 사항을 기술하고 마우스 이동을 시뮬레이션하여drag from start to end및 그click at position명령어를 지정합니다.
용이한 의미론
HyperCard의 프로그래밍 언어인 HyperTalk와 애플스크립트와 같은 외견상 유사한 언어 사이의 독특한 차이점은 HyperTalk 스크립트가 어떤 입력을 받아들이는지에 대해 더 관대하다는 것이다.
값이 할당되었을 때의 위의 암묵적 변수 선언과 유형 간에 값이 암묵적으로 변환된 방법(예를 들어 다음과 같이 요청 가능)과는 별도로character 2 of 1234), HyperCard는 특정 표현식을 인식하고 그 표현식에서 하위 값을 추출합니다.
예를 들어 다음과 같습니다.
놓다 그 selected Line(선택한 회선) 의 카드 들판 리스트 박스 안으로 선택 -- 카드 필드 "Listbox"의 '2 ~ 3행'을 표시합니다. 선택한다. 선 1 의 카드 들판 리스트 박스 선택한다. 선 (단어 2 의 선택) 의 카드 들판 리스트 박스 선택한다. (그 selected Line(선택한 회선) 의 카드 들판 리스트 박스) -- 설명만을 목적으로 괄호를 추가했습니다. 또는
놀고 하프시코드 c e g 놀고 하프시코드 "ce g" 놓다 "ce g" 안으로 멜로디 놀고 하프시코드 멜로디 최종 결과는 해석 전에 Bash 스크립트의 변수 확장으로 스크립터와 비슷하다고 느꼈지만, 이것은 특수한 경우 구문이었고 데이터가 코드로 평가되는 함정은 없었습니다.예를 들어, 다음은 모두 함수 호출이 아닌 멜로디 구문 오류입니다.
놀고 하프시코드 "c e g()" 놓다 "c e() g" 안으로 멜로디 놀고 하프시코드 멜로디 HyperTalk 확장
HyperTalk 언어는 HyperCard 자체와 마찬가지로 쇠퇴했지만 플러그인 프로토콜인 XCMD(External Commands) 및 XFCN(External Functions)을 통해 2차 리스되었습니다.이것은 단일 엔트리 포인트와 반환 값을 가진 스택에 연결된 네이티브 코드 컨테이너입니다.XCMD 및 XFCN은 HyperTalk 스크립트에서 일반 메시지 및 함수 핸들러와 마찬가지로 호출할 수 있으며 HyperCard 응용 프로그램에 메시지를 다시 보낼 수도 있습니다.일부 기업적인 XCMD 작성자는 풀컬러 지원 등의 고도의 기능을 추가하였습니다(컬러라이즈).HC, HyperTint, AddColor, 여러 특수 용도 창(프롬프트, 타블로이드, Textoid, Listoid, ShowDialog, MegaWindows), 드래그 앤 드롭 지원 및 언어에 대한 다양한 하드웨어 인터페이스.
HyperTalk의 후예
다양한 스크립트 언어가 HyperTalk의 슈퍼셋을 구현하고 있습니다.
- 컴파일!-Talk – HyperTalk 코드에서 네이티브 68000 머신 코드(XCMD 및 XFCN용 등)를 컴파일하여 네이티브 Macintosh 툴박스 루틴을 호출할 수 있는 Tom Pittman의 HyperCard 스택 및 XCMD.컴파일 부트스트랩되어 있습니다.즉, 그 이후 버전은 그 이전 버전을 사용하여 컴파일되었습니다.
- Double-XX-Talk – Double-XX는 CompileIt!에 추가되어 출하된 경량 HyperCard 클론이며 HyperCard 없이 XCMD 및 XFCN을 실행할 수 있으며 소형 HyperTalk 인터프리터도 포함되어 있습니다.
- MediaTalk – Oracle Media Objects 언어입니다.Plus의 후예이며 최초의 크로스 플랫폼 HyperCard 클론입니다.게다가, 진정한 모듈러 방식이었던 유일한 모델입니다.
- PlusTalk – Spinnaker Software(원래는 Format Verlag에서 개발)에서 Oracle Media Objects의 기반으로 사용된 Plus 언어입니다.
- SenseTalk – NeXT가 제공하는 HyperSense 및 VNC 기반의 테스트 도구 Eggplant 언어.
- SuperTalk – Bill Appleton에 의한 최초의 HyperCard 클론인 SuperCard 언어.애플톤은 또한 인기 있는 월드빌더 어드벤처 컨스트럭션 키트를 썼다.
- Transcript(구 revTalk 및 MetaTalk) – LiveCode(구 Revolution 및 MetaCard) 소프트웨어 플랫폼 및 개발 환경에 구현된 언어.MetaCard는 Classic Mac OS, Mac OS X, Windows, Linux 및 Solaris에서 실행되는 초기 Unix 기반 HyperCard 클론입니다.
- XION - 원래 실현되지 않은 오픈 소스 HyperCard 클론의 언어입니다.현재 OpenX로 구현이온
이러한 클론 및 방언(일반적으로 xTalk 언어라는 별칭으로 언급됨)은 예외 처리, 사용자 정의 객체 속성, 타이머, 멀티스레딩, 사용자 정의 객체 등 최신 프로그래밍 언어에서 예상되는 다양한 기능을 언어에 추가했습니다.
구문 및 구조가 HyperTalk의 영향을 나타내는 언어도 있습니다.예를 들어 다음과 같습니다.
- ActionScript – Adobe Flash용 스크립트 언어.
- AppleScript – Apple Classic Mac OS의 주요 스크립트 언어이며 MacOS에서도 지원됩니다.
- Lingo – Macromedia Director의 프로그래밍 언어는 xTalk와 같은 구문에서 시작되었지만 이후 버전은 JavaScript와 비슷한 방향으로 진행되었습니다.
- JavaScript – Brendan Eich에 의해 작성된 스크립트 언어.[4] 확장 사용자 인터페이스 및 동적 웹 사이트를 만들기 위해 일반적으로 웹 브라우저의 일부로 구현됩니다.나중에 ECMAScript로 일반화 및 표준화되었습니다.
HyperTalk에 의해 처음 보급된 많은 메서드 이름은 다음과 같은 후기 언어로 만들어졌습니다.onmouseup이벤트 핸들러를 지정합니다.[5]Asymetrix ToolBook은 HyperCard 클론으로도 간주되지만 스크립팅 언어는 HyperTalk와 거의 유사하지 않습니다.
「 」를 참조해 주세요.
- Inform 7 – 비슷한 영어 구문을 가진 프로그래밍 언어
메모들
- ^ 텍스트 파일에서 불러올 수 있습니다.
레퍼런스
- ^ a b Flynn, Laurie (1989-02-27). "Apple Ponders Standardizing on HyperTalk". InfoWorld. p. 31.
- ^ Dave Kelly, "Tools of the Trade: Compile It! 2.0!" MacTech, 7권 9호
- ^ Erland Sommarskog와 Frank Kalis, "다이나믹 SQL의 저주와 축복", 2011년 6월 23일
- ^ Eich, Brendan (1998). "Foreword". In Goodman, Danny (ed.). JavaScript Bible (3rd ed.). John Wiley & Sons. ISBN 0-7645-3188-3. LCCN 97078208. OCLC 38888873. OL 712205M.
- ^ Brendan Eich, "Splash Keynote 2011, 슬라이드 10"
외부 링크
- Pantechnicon HyperTalk Wiki 페이지– HyperTalk 언어 참조 (제어 구조, 이벤트, 내장 기능 등)