キリルプログラミングは生産性を高めることができます

こんにちは、Habrahabr。 ご存知のように、技術英語は情報技術の世界の言語です。 主なドキュメント、すべてのプログラミング標準は英語で表示されます。 特に、ASCIIメインコードページとポータブル文字セットには26個のラテン文字が含まれていますが、異なるエンコードを使用する場合は問題ありません。 歴史的に、これは英語の国際レベルと情報技術の分野における米国のリーダーシップによるものです。 この状況により、インターネットとグローバル化の時代にテクノロジーの最大限の互換性を実現できます。 この記事では、標準を変更するという目標を設定するのではなく、ロシア語でITの代替アプローチを示したいだけです。



最初は、スポーツの関心のために、ロシア語のアルファベット全体、10桁、POSIX標準のポータブル文字セットのすべての句読点を含む、ASCIIに似た7ビットの文字テーブルを作成したかったのです。 その過程で、そのサブテーブルの明確な定義により、そのようなテーブルはASCIIよりもはるかに便利であることがますます明らかになりました。 Unicodeがあることは知っていますが、ここではシングルバイトエンコーディングの可能性があると考えられています。 作成の過程で、追加の利点が見つかり、テーブルが何度も完全に書き換えられ、制御文字が表示され、最終結果の1つが提示されました。







利点は何ですか? それを分解してみましょう。



1.明らかに、文字全体がテーブルの後半全体を占めています。 文字Åだけでは十分なスペースがありませんでした。重要ではありません。誰もが「遠い親relative」としての特別な地位に長い間慣れていました。したがって、ISO 8859-5およびWin-1251のように、隣接セルの大文字、小文字バージョンであるアルファベットとは別に場所が割り当てられます。 この良い文字がないと、ロシア語のアルファベットは32文字で構成され、2番目のケースが追加され、64文字、つまり2 ^ 6が追加されます。 したがって、1ビットで、文字が文字であるかどうか、および中間のケース(後のケース)が適用可能かどうかを判別できます。 実際の文字列である必要があるため、アルファベット順で、最初にすべて小文字、次にすべて大文字になります。 反対の理由はありません。後で説明しますが、主なことは、2の累乗により、両方のアルファベットの境界が16進表の行の境界と一致することです。これは素晴らしいことです。 配列内の各文字のバイナリインデックスはコードページの最後の5ビットの数に等しく、レジスタは6番目によって決定され、シンボル自体のアルファベットの性質は7番目によって決定されます。



2.前半では、多くの非文字も2回と2回に分割されます。ここで同じアドレス指定が機能し、追加のレジスタが追加され、「平均」と呼ばれます。 一番上の行は制御文字で占められています。ここではロシア語で書かれています。これは、ロシア正教会の絵の中のラテンアルファベットの存在が、すべての規則に反して不器用に見えたためです。 それらの目的は重要ではありません。私はアセンブラー、特に機械命令の達人ではありません。 ASCIIの作成以来、技術の進歩ははるかに進んでおり、70年代の制御文字のほとんどはもはや関係ありません。 テレタイプおよび多くのスイッチはこのエンコーディングで動作しませんが、最新のアーキテクチャのコンピューターを使用するには、16個のコマンドで十分です。さらに必要な場合は、最後に特別な「UPR」コマンドが特別に割り当てられます。



要するに:START-\ 0、BIP-\ a、NAZ-\ b、TAB-\ t、NOV-\ n、ABZ-\ v、AML-\ f、WHO-\ r、TIME-スペース、KOH-シグナル終了について、STO-停止コマンド、VER-大文字、シフト、FIC-大文字小文字の修正、大文字ロック、AL-ミドルケース、代替文字割り当て、alt、OTM-キャンセル、esc、UPR-制御、コマンドの開始、ctrl。 選択したチームは最適ではありません。特に、DELコマンドは必要ありません-削除、プロセス応答要求ですが、コントロールは問題を解決します。 また、この記事ではプロセッサの微妙な点については説明していません。 制御文字セットが最初の行に完全に配置され、POSIX標準に準拠していることが重要です。 レジスタは制御コマンドに対して機能しません。最初の4つのゼロビットは、残りの切り替えを無効にします。



3. 2行目には2つのレジスタがあります。 最初の上部は、左から3番目のビットの値を0から1に変更し、読み取り値を4行目に転送します。 2番目、中間、3番目と4番目のビットを変更し、3番目に変換します。 2番目の行を4番目の行で変更すると、「中間」レジスタはむしろ「下位」と呼ばれ、1回の置換で切り替えが実行されます。 しかし、読みやすくするために配置したように行を配置しました。 ちなみに、3行目と4行目の左半分は算術記号で、右半分は句読点で占められています。 誰かがテーブルを注意深く調べると決めた場合、すでに有用な記号¬(論理的NOT、非常に必要なもの)と¤(通貨記号、財務書類用)がASCIIで欠落していること、および特定のキーと2慣れ親しんでください。



行の文字の順序も重要です。1列-1キーです。 つまり、キーボードのキーのコーディングはテーブルと完全に相関しています。 はい、キーボードの機械的なレイアウトはここでは一般的ですが、機能的なレイアウトも独自のものです。事実、QWERTY標準は入力を最小限に抑えるように設計されています。 1870年代には、タッチタイピングの方法がなく、タイプライターレミントン1はすでに商業的に成功していました。 その前身には単一のレイアウトがありませんでした。そして、それらに取り組んでいるとき、しばしばクラッチレバーがお互いに起こりました。 クリストファー・ショールズは常に実験を続け、可能な限り小指をロードし、テキストのタイピング速度を遅くし、それにより癒着を防ごうとしました。 頻繁に使用される文字や句読点はアクセスが困難でした。 それ以来、現実は変わっており、現代のキーボードは機械的な病気に悩まされておらず、新しいレイアウトでタイプすることを再学習することはピアノのキーを逆順にするようなものであるため、標準が残っています。 ただし、たとえばDvorakのレイアウトなど、別の方法もあります。 ロシアのレイアウトはもともと10本指の方法に基づいて設計されていたので、幸運でした。 しかし、句読点はまだ部分的にQWERTYを継承しており、コンマは大文字になりました。 記事に記載されているエンコーディングのキーボードでは、数値キー、したがって算術記号と句読点の記号は、使用頻度を考慮して左から右に移動します。







未解決の質問に戻ると、大文字が大文字に続くのはこのためです。BEPコマンドは、最初の行を除くすべての行に対して2行下にドロップします。 行の文字3と4のアドレス指定は2行目のレジスタを介して行われるため、従来の方法を使用してレジスタを再利用することはできません(ShiftキーまたはAltキーを押すかどうかにかかわらず、上から指の圧力を上げることは無意味です)。 ルールの認識は大きな役割を果たします。左の3番目のビットが0の場合、大文字と小文字が区別されないことを意味します。1-大文字がオンで、小さな文字が大きな文字に置き換えられます。



これらのルールのおかげで、テーブルは文字通り最初の読み取り後にメモリから回復でき、ストリームに入る新しい文字のプロパティは最初のビットが読み取られるときに決定され、パフォーマンスを大幅に向上させるために使用できます。 このコードページがアプリケーションを見つけることはまずありません。世界中のプログラマーは長い間英語に慣れていて、普通のユーザーにはUnicodeがあり、アメリカの企業は基本的なプログラミングとPCアーキテクチャに取り組んでいます。 この記事は本質的に純粋に非公式ですが、ロシア語で高レベル(および低)YPのクイックインタープリターを作成することもできます。 さらに読みやすくするには、表の2番目のバージョンを示します。この場合、中央のレジスタは左側の1/4ビットで決定され、両方のレジスタは単位ではなくゼロでオンになります。






All Articles