Loading AI tools
プログラミング言語 ウィキペディアから
Ring(リング)は動的型付けに対応した中東出身の汎用プログラミング言語である。言語キーワードや演算子のユーザ再定義機能、自然言語プログラミング、 C/C++プロジェクトへの組み込み、 C/C++コードを用いた機能拡張や言語単体での使用も可能である。命令型、手続き型、オブジェクト指向、関数型、メタプログラミング、入れ子構造を用いた宣言型、および自然言語プログラミングのプログラミングパラダイムに対応している。この言語は可搬性(Windows、Linux、macOS、Androidなど) があり、コンソール、GUI、ゲームとモバイルアプリケーションの開発で使用できる。[2][3][4][5][6][7][8][9][10][11][12][13]
Ringのロゴ | |
パラダイム | マルチパラダイムプログラミング言語: オブジェクト指向、命令型、関数型、メタプログラミング、手続き型、リフレクション、宣言型、自然言語プログラミング |
---|---|
登場時期 | 1.0 - 2016年1月25日 |
設計者 | محمود سمير فايد(英名: Mahmoud Samir Fayed / 和名: マハムード・サミル・ファイド) |
開発者 | The Ring Development Team(和名: リング開発チーム) |
最新リリース | 1.18 - 2023年7月12日 |
型付け | 動的型付け、弱い型付け |
影響を受けた言語 | Lua, Python, Ruby, C, C#, BASIC, QML, xBase, Supernova[1] |
プログラミング言語 | 主にC、一部のコンポーネントはC++ |
プラットフォーム | Linux、macOSおよびMicrosoft Windows |
ライセンス | MITライセンス |
ウェブサイト | http://ring-lang.net/ |
拡張子 | .ring, .rh, .rform, .cf |
Ringには同じプログラムを異なる記法で記述できる機能がある。この用例は標準的な "Hello, World!" プログラムを三種類の異なる記法で表したものである。
第一記法:
See "Hello, World!"
第二記法:
Put "Hello, World!"
第三記法:
Load "stdlib.ring" Print("Hello, World!")
また、このような自然言語プログラミング風の記法も可能である(試すにはConEmuなどUTF-8環境が必要):
ChangeRingKeyword See 手紙を出す ChangeRingOperator + そして 改行 = nl します。 = :します。 手紙を出す "こんにちは、世界" そして 改行 します。 ChangeRingKeyword 手紙を出す See // キーワードの復旧 ChangeRingOperator そして + // 演算子の復旧
下記はRingのコメント記法である。なお、コメントはキーワードや演算子ではないためChangeRingKeywordやChangeRingOperatorでの再定義や変更はできない(Ring 1.7で確認済み)。
一行コメント:
// これはコメントです。 # これもコメントです。
一行コメント(BASIC言語風のユーザー定義):
rem = :rem // 文字列として展開されるが命令文の意味を持たないのでエラーにはならない。 // または def rem comment_strings {} def main rem "これはコメントです。" see "これはコメントです。" + nl // nl の代わりに ¥n も使用可能。
複数行コメント:
/* これはコメントです。 複数行に渡って書くことができます。 */
Ring では C/C++ のカーリーブラケットブロック、 Python のインデントブロック (は見た目だけであり、Ring の仕様上、特に意味を持たない) を使用できる。
カーリーブラケットブロック (変更時は ChangeRingOperator を使用する)
def main { see "Hello, World!" return 0 } // ; は不要
インデントブロック
def main see "Hello, World!" return 0 // end は不要
Pascal風のブロック
ChangeRingKeyword func function ChangeRingKeyword def procedure begin = :begin function main begin see "Hello, World!" return 0 end ChangeRingKeyword function func ChangeRingKeyword procedure def
また、改行やセミコロンよる文の区切りは不要であるため、一行で書くこともできる。 この機能は通常の一行記述のほか、自然言語プログラミング、難解プログラミング、ボイスコーディングで使用できる (Ring ではソースコードを中間コードへコンパイルして実行するため、この機能を使用したソースコードの難読化はあまり意味がない)。
def dummy x, y, z def yummy (x, y, z) {} def main see "Hello, World!" return 0 end
下記は、フルインストール版(ファイルサイズが約100MBのもの)の導入直後から利用できる拡張機能である。これらは Ring 側で公式提供・保守継続されているため、他の言語で問題となるようなライブラリの依存関係に悩まされることがなく、破壊的な言語仕様の変更であっても突然使えなくなる心配が少ない利点もある。
など。
Shift JISでは Ring で予約されている演算子や括弧などASCII文字と ShiftJIS文字の2バイト目が重なってしまう領域があるため、「伝、義、真、実」などの漢字をキーワードや変数名に使うと誤認識でエラーとなる制限がある。ただし、誤認識されてしまう文字を使わずに類語などで置き換えることで実用は可能である。対策としては ソースコードは UTF-8 で保存。文字列や内部処理は ShiftJIS で行うことである。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.