HyperTalk
この ký sự はKiểm chứng khả năngなTham khảo văn hiến や xuất điểnが toàn く kỳ されていないか, bất thập phân です.(2024 niên 9 nguyệt) |
パラダイム | Thủ 続き hình,イベント駆 động hình |
---|---|
Đăng tràng thời kỳ | 1987 niên |
Thiết kế giả | Dan Winkler |
Khai phát giả | Apple |
Ảnh hưởng を thụ けた ngôn ngữ | Tự nhiên ngôn ngữ,Pascal |
Ảnh hưởng を dữ えた ngôn ngữ | ActionScript,AppleScript,ECMAScript,JavaScript,Lingo,LiveCode,SenseTalk,SuperTalk |
HyperTalk( ハイパートーク ) はHyperCardに dụng いられるプログラミング ngôn ngữ.
Khái yếu
[Biên tập]インタプリタPhương thức を thải dụng するスクリプト ngôn ngữで, その văn pháp は anh ngữ に cận く, sơ tâm giả にもなじみやすい.
HyperCardKhai phát チームのダン・ウィンクラーがデザインした. 拡 trương tính を khảo え,XCMD( ngoại bộ コマンド ) とXFCN( ngoại bộ quan sổ ) という cơ cấu も dụng ý され,プラグインĐích に cơ năng を truy gia khả năng である.
HyperCardがオブジェクト chỉ hướngHoàn cảnh の vi, それぞれのスクリプトは, HyperCardのスタック thượng のオブジェクトであるカードやボタン, フィールドなどのパーツ ( オブジェクト ) に phó tùy する.
Khái niệm
[Biên tập]- Nhất liên の処 lý は, スタック, バックグラウンド, カード, ボタン, フィールドのプロパティであるスクリプトに thư かれる.
- 処 lý nội dung は,
on « mệnh lệnh danh »
〜end « mệnh lệnh danh »
またはfunction « quan sổ danh »
〜end « quan sổ danh »
に hiệp まれた hành nội に ký thuật する. これらに hiệp まれていない nội dung は vô thị される ( văn pháp エラーになることもある ). - 処 lý を kỳ す hành は, tất ずMệnh lệnh(
answer
,go
,put
Đẳng ) かキーワード(if
,repeat
,do
Đẳng ) で thủy まる.- Quan sổ や, 単なる sổ trị や văn tự liệt で văn を thủy めることはできない. この điểm, HyperTalkでは mệnh lệnh と quan sổ には minh xác な khu biệt が tồn tại する.
- HyperTalkでいうキーワードは, đồng danh の mệnh lệnh や変 sổ を định nghĩa (オーバーライド) することができないDư ước ngữのこと. Chủ にChế ngự cấu tạoを kỳ すキーワードを văn đầu に trí くことができる. Tiên thuật の
on
,function
,end
もキーワードに cai đương する. - なお, tiên đầu にインデントを kỳ す không bạch を nhập れることは khả năng で, スクリプトエディタでは
if
やrepeat
の thâm さに ứng じて tự động đích にインデントが挿 nhập される.
- パラメータに đối する kế toán 処 lý (
sin
,max
,random
Đẳng ) や, システムの trạng thái đẳng を thủ đắc する処 lý (time
,date
,systemVersion
Đẳng ) をQuan sổと hô ぶ. Quan sổ はthe « quan sổ danh » of «パラメータ»
または« quan sổ danh »(«パラメータ»)
の hình で hô び, mệnh lệnh や quan sổ, キーワードのパラメータ nội で sử dụng することができる.- Tổ み込み quan sổ は lạng phương の ký pháp でコールできるが, tiền giả の phương が cao tốc である. Phi tổ み込み quan sổ は hậu giả の ký pháp でコールする tất yếu がある.
- ボタンやフィールド, カード đẳng のオブジェクトが trì つ chúc tính (
id
,name
,rectangle
,location
Đẳng ) をプロパティと hô ぶ. プロパティを thiết định する tràng hợp はset
Mệnh lệnh を dụng いる ( 変 canh bất khả のプロパティも tồn tại する ). プロパティを tham chiếu する tràng hợp はthe «プロパティ danh » of «オブジェクト danh, オブジェクトID đẳng »
の hình で ký thuật し, quan sổ hô び xuất しに tự ている. - Trị を nội bộ に hàm むものをコンテナと hô ぶ. 変 sổ, メッセージボックス, ボタン, フィールドなどがコンテナに cai đương する.
put
Mệnh lệnh によって trị を thiết định することができ, mệnh lệnh や quan sổ, キーワードのパラメータとして độ した tràng hợp は, コンテナ danh として ký tái した bộ phân が trị で trí き hoán えられる. - 変 sổにはグローバル変 sổとローカル変 sổがある. グローバル変 sổ として sử dụng する tiền には
global
キーワードで tuyên ngôn する tất yếu がある. ローカル変 sổ には tuyên ngôn は tất yếu ない.- いずれも, trị を đại nhập する tràng hợp は
put
Mệnh lệnh の trị の đại nhập tiên として chỉ định する. ただしit
変 sổ はanswer
Mệnh lệnh やget
Mệnh lệnh đẳng の kết quả の cách nạp tiên として ám mặc đích に sử dụng される.
- いずれも, trị を đại nhập する tràng hợp は
- Tha, văn pháp に quan する tế かい sĩ dạng
- Hành の khu thiết り văn tự は cải hành である. 1つの処 lý を phục sổ hành で ký thuật したい tràng hợp は, hành mạt に
~
( チルダ ) を ký thuật する. - Đại văn tự と tiểu văn tự は khu biệt されない.
on mouseUp
はOn MouseUp
と ký thuật しても đồng じ động tác をする. また,"hypercard" = "HyperCard"
の bình 価 trị はtrue
である. --
から cải hành までは, コメントとして tráp われる.
- Hành の khu thiết り văn tự は cải hành である. 1つの処 lý を phục sổ hành で ký thuật したい tràng hợp は, hành mạt に
Lệ
[Biên tập]Giản 単な lệ
onmouseUp
Beep
putsqrt(2+4)intocardfield"Kế toán kết quả"
endmouseUp
この lệ は, このスクリプトが phó gia されているオブジェクト ( パーツ ) の thượng で, マウスがクリックされたら,ビープ âmを minh らし, 2と4を gia えた kết quả の bình phương căn を, このオブジェクトが thừa っているカードに tồn tại する『 kế toán kết quả 』という danh のフィールドに tống る. mouseUpとなっているのは, マウスクリックのチャタリングを phòng chỉ するために, クリック hậu のアップを thủ り xuất している.
Tha ngôn ngữ との bỉ giác
[Biên tập]C ngôn ngữ との bỉ giác
[Biên tập]ここでは, sơ tâm giả が sơ めて học ぶ ngôn ngữ として quảng く tẩm thấu しているC ngôn ngữを lệ に bỉ giác する.
- C ngôn ngữ は văn chương の khu thiết りとしてセミコロンを sử い, bỉ giác đích tự do な biểu ký が khả năng であるが, スクリプト ngôn ngữ であるHyperTalkは cải hành が văn chương の khu thiết りとなるため, văn chương の đồ trung で cải hành するとエラーになる. Lệ えば “put" Hello, World! "into A” と biểu ký すべきところを “put" Hello, ( cải hành ) World! "into A” と biểu ký するとエラーになる.
- 変 sổ tuyên ngôn や quan sổ tuyên ngôn が bất yếu であり, また đại nhập する trị ( chỉnh sổ, tiểu sổ, văn tự liệt ) を ý thức せずに変 sổ に đại nhập できる.
- Lệ えばAという変 sổ に “10”という chỉnh sổ が nhập っていたとしても, tân たに tuyên ngôn することなく “0.5”という tiểu sổ や “ten”という văn tự liệt を nhập れることが xuất lai る.
- ただし, văn tự ( liệt ) が nhập った変 sổ に chỉnh sổ を gia toán する…といった động tác はエラーとなり động かないため chú ý が tất yếu である. Thượng, văn tự liệt と văn tự liệt, もしくは văn tự liệt と sổ trị を繋げる ký hào は “&” である.
- また, sổ trị gian での hình vi い ( chỉnh sổ, tiểu sổ, phù hào phó き・ vô し ) が vô いため, lệ えば, “0.5*4” “0.5+1.5” といった tiểu sổ を nguyên にした kế toán でも, kết quả が chỉnh sổ となる vật は cường chế đích に chỉnh sổ となり ( tiểu sổ điểm dĩ hạ が vô くなった trạng thái で ) đại nhập される. Nhất phương, C ngôn ngữ では tối も thượng vị の hình に変 hoán され, tối chung đích に đại nhập する変 sổ の hình で quyết định される. このため, lệ えば “float hình = double hình *int hình” といった tràng hợp は tối chung đích にfloat hình に hoàn められた trị が đại nhập される ( tường しくはHình 変 hoánを tham chiếu ).
- 変 sổ の thích dụng phạm 囲もC ngôn ngữ とほぼ đồng じで, lệ えばある quan sổ で sử われた変 sổ は hô び xuất した biệt の quan sổ では thích dụng されない. ただし, グローバル変 sổ はこの hạn りではない.
- 変 sổ の đại nhập ・ thủ り xuất しに quan しては toàn て “put” mệnh lệnh を sử うことになる.
- Lệ えばC ngôn ngữ での “A = B+C”をHyperTalkで thư くと “put B+C into A”となり, C ngôn ngữ とは thuận tự が nghịch になる.
- また, “put” はinto dĩ hạ を chỉ định しなければ tiêu chuẩn xuất lực (メッセージボックスと hô ばれる tiểu さい văn tự liệt biểu kỳ dụng のウィンドウ ) へ xuất lực するほか, フィールド đẳng へオブジェクトへの đại nhập も khả năng ( tường しくはHyperCardを tham chiếu ).
- ちなみに “=” はHyperTalk thượng ではĐẳng hàoの ý vị を trì ち, đại nhập には sử えない ( C ngôn ngữ での “==” に tương đương ).
- Ký hào を sử った diễn toán tử の đa くが, より trực cảm đích な biểu ký や anh 単 ngữ に trí き hoán えられている.
- Lệ えば, C ngôn ngữ における “%” “!” “&&” “||” は, HyperTalkでは “mod” “not” “and” “or” に đối ứng する.
- ビット diễn toán tử, アドレス diễn toán tử đẳng は nhất thiết tồn tại しない.
- Phối liệtの khái niệm が tồn tại しないが,Văn tiết( word ),Hành( line ),ある nhậm ý( tiêu chuẩn ではカンマ(,)であるがスクリプト nội で変 canh khả năng )の văn tự( item ),Văn tự 単 vị( char ) での khu thiết りで đại nhập ・ thủ り xuất しが tiêu chuẩn で khả năng である. ただし, nhật bổn ngữ に quan する “word” の処 lý に quan しては động tác がアバウトであるため, カンマで khu thiết って “item” を sử い処 lý することが vọng ましい.
- これを sử うことによって phối liệt と đồng じような処 lý を hành える. Lệ えば, thứ の nhị つのコードはほぼ đồng dạng の処 lý をしている ( tiện nghi thượng “main()” や “on openstack” を tỉnh lược する ).
HyperTalk
put"10,20,30,40"&return&"100,200,300,400"intoarray-- “&return&” は cải hành を ý vị する
putitem2ofline1ofarray+item2ofline2ofarrayintoA
answer"A="&A-- “A=220” とダイアログに biểu kỳ
C ngôn ngữ
intA,array[][]={{10,20,30,40},{100,200,300,400}};
A=array[0][1]+array[1][1];
printf("A=%d",A);
また, C ngôn ngữ よりも bỉ giác đích tự do に văn tự liệt 処 lý が khả năng である.
put"ABC,DEF,GHI"&return&"GHI,DEF,ABC"intoarray
putitem2ofline1ofarray&item2ofline2ofarrayintoA
answerA-- “DEFDEF” とダイアログに biểu kỳ
- C ngôn ngữ はポインタを sử ったメモリの động đích cát り đương てやシフト diễn toán といったハードウェアレベルでのアクセスが khả năng であるが, ( スクリプト ngôn ngữ であることも quan hệ しているが ) HyperTalkはそういった処 lý は tiêu chuẩn では bất khả năng である.
- ただし, サウンド処 lý や họa tượng 処 lý などOSレベルにアクセスする処 lý については tiền thuật のXCMDやXFCNを sử えば khả năng である.
- そのほか, sào り phản しや điều kiện phân kỳ においてはC ngôn ngữ とほぼ đồng じ処 lý が khả năng である.
- Lệ えば, sào り phản しに quan してはC ngôn ngữ での “while(1){~}”( vô hạn ループ ) は “repeat ~ end repeat”,“for(i=1;i<=10;i++){~}”は “repeat with i = 1 to 10 ~ end repeat”という phong に, điều kiện phân kỳ は “if(i==10){~}”は “if i=10 then ~ end if”という phong に ký thuật すれば đồng dạng の処 lý が khả năng.
Javaとの bỉ giác
[Biên tập]Thứ に, đại biểu đích なオブジェクト chỉ hướng ngôn ngữであるJavaを lệ に bỉ giác する.
- ボタン, フィールド, カード đẳng はオブジェクト đích な tính chất を trì つ.
- プロパティ ( chúc tính ) を trì つ. プロパティに trị を thiết định するには “set” mệnh lệnh を sử dụng する.
- マウスやキーボード đẳng によるイベントを thụ け thủ る. Tiên thuật の “on mouseUp” ~ “end mouseUp” nội に処 lý nội dung を ký thuật したスクリプトは, マウスが ly されたイベントを thụ け thủ る lệ である.
- “クラス” “インスタンス” “継 thừa” đẳng の, đa くのオブジェクト chỉ hướng ngôn ngữ に tồn tại する khái niệm は, HyperTalkでは tồn tại しない.
- Độc tự のクラスを tác thành することはできない. クラスを tuyên ngôn する cấu văn そのものが tồn tại しない.
- “ボタン” をクラス, “カード thượng に tác thành したボタンのうち1つ” をインスタンスと khảo えることはできるが, HyperTalkではそのような hô び phương はしない.
- ポインタ hình が tồn tại しないため, カード thượng, またはバックグラウンド thượng のボタンやフィールドを tham chiếu するには, オブジェクト danh, オブジェクト phiên hào, オブジェクトIDを lợi dụng することになる.
HyperTalk
puthighlightofcardbutton"I Agreed"intoagreed
setenabledofcardbutton"OK"toagreed
Java
booleanagreed=agreedCheckBox.getState();// agreedCheckBox, okButton に trị が nhập っているとする
okButton.setEnabled(agreed);