タグ付けされた質問 「language-design」

参加者に言語または言語の一部を設計するように求める課題の場合。

10
未知の完全性のプログラミング言語を書く
言語をチューリング完全であるかどうかを判断することは、言語を設計するときに非常に重要です。また、多くの難解なプログラミング言語にとって最初から非常に困難な作業ですが、一気に追い上げましょう。チューリング・コンプリートを証明するのが非常に困難なプログラミング言語を作成して、世界の最高の数学者でさえ、どちらの方法でも証明できないようにします。あなたの仕事は、チューリング完全性が数学の主要な未解決問題に依存している言語を考案して実装することです。 ルール 選択する問題は、少なくとも10年前に提起されたものでなければならず、この質問の投稿時点で未解決でなければなりません。ウィキペディアのページにリストされているものの1つだけでなく、数学の証明可能な推測でもかまいません。 言語の仕様と既存の言語での実装を提供する必要があります。 推測が成り立つ場合に限り、プログラミング言語はチューリング完全でなければなりません。(または、推測が成り立たない場合にのみ) 選択した推測に基づいて、チューリングが完全または不完全になる理由に関する証拠を含める必要があります。インタプリタまたはコンパイルされたプログラムを実行するときに、無制限のメモリへのアクセスを想定できます。 チューリングの完全性に関心があるため、I / Oは必要ありませんが、目標は最も興味深い言語を作成して、それが役立つようにすることです。 これは人気のあるコンテストなので、投票数が最も多い答えが勝ちます。 対象基準 良い答えは何をすべきですか?投票の際に探す必要があるものの、技術的には必須ではないものを以下に示します。 既存の言語の単純なパッチであってはなりません。既存の言語を仕様に合わせて変更することは問題ありませんが、退屈なため、条件にパッチを当てることはお勧めしません。Nineteeth Byteのais523によると: エソランの仕掛けをよりしっかりと言語に焼き付けたい スタンドアロンの難解な言語として興味深いはずです。

15
使用できないように見えるプログラミング言語を作成する
強盗の挑戦スレッドはこちらです。 Copsの課題:プログラミングには使用できないように見えるが、何らかの非自明なメカニズムを通じて計算(または少なくともタスクの完了)を許可するプログラミング言語を設計します。 入力ファイルからコードを読み取り、次に何かを行う単純なプログラミング言語を設計する必要があります。インタプリタで実行するときに、入力で3番目に大きい数を見つけるソリューションプログラムを準備する必要があります。強盗がソリューションプログラムを見つけるのを可能な限り難しくする必要があります。強盗は、あなたが考えていたものだけでなく、タスクを達成するあらゆるソリューションを投稿できることに注意してください。 これは人気コンテストです。警官の目標は、通訳を投稿してから8日間、クラックされることなく生き残りながら、できるだけ多くの票を得ることです。そのためには、次のプラクティスが役立ちます。 言語のセマンティクスを正確に説明する 読みやすいコードを書く 次の戦術は強く推奨されません。 暗号化、ハッシュ、またはその他の暗号化方法を使用します。RSA暗号化を採用している言語、またはそのSHA-3ハッシュが0x1936206392306に等しくない限りプログラムの実行を拒否する言語を見つけた場合は、遠慮なく投票してください。 強盗の挑戦:警官のインタープリターで実行されたときに、入力で3番目に大きい整数を見つけるプログラムを作成します。 これは比較的簡単です。警官の答えを解読するには、インタープリターで実行されたときにタスクを完了するプログラムを作成する必要があります。回答をクラックするときは、投稿にリンクしている警官の回答に「クラック」というコメントを投稿します。最も警官を割った者は、強盗のスレッドに勝ちます。 I / Oルール 通訳者は、プログラムのコマンドラインでファイル名を取得し、実行時に標準入出力を使用する必要があります。 入力は単項で与えられ、文字0と1(ASCIIでは48および49)のみで構成されます。数値Nは、Nに 1s続いてa としてエンコードされ0ます。0ファイルの終わりの前に追加があります。例:シーケンス(3、3、1、14)の場合、入力は11101110101111111111111100です。 入力には、少なくとも3つの数字が含まれることが保証されています。すべての数値は正の整数です。 出力は1、プログラムが停止する前に印刷されたの数によって判断されます。他の文字は無視されます。 次の例では、最初の行は10進形式の入力です。2番目は実際のプログラム入力です。3番目はサンプル出力です。 1, 1, 3 101011100 1 15, 18, 7, 2, 15, 12, 3, 1, 7, 17, 2, 13, 6, 8, 17, 7, 15, 11, 17, 2 111111111111111011111111111111111101111111011011111111111111101111111111110111010111111101111111111111111101101111111111111011111101111111101111111111111111101111111011111111111111101111111111101111111111111111101100 111111,ir23j11111111111u 247, 367, 863, …

6
言語設計:2次元パターンマッチング
これは、Fortnightly Challenge#6です。テーマ:言語設計 このチャレンジにはチャットルームがあります。アイデアについて議論したい場合は、ぜひご参加ください! そして今、完全に異なるもののために... この2週間、新しいタイプのチャレンジを試してみたいと思います。この課題では、言語を設計します!パターンマッチングはプログラミングでは非常に一般的な問題であり、コードゴルフでは非常に役立ちます。たとえば、正規表現を使用して、テキスト行のパターンを検出できます。ただし、2次元パターンを記述および検出する確立された方法はありません。 挑戦 パターンマッチング言語を設計します。これにより、テキストのブロックで2次元のパターンを記述できます。動作モード(あなたの言語がそうでなければ、正規表現と共通の何かを持っている必要はありませんが)あなたの言語のは、正規表現のようになります。 入力として、テキストの長方形ブロックを受け取ります。テキストは、印刷可能なASCII文字(0x20〜0x7E)と、グリッドの行を区切る改行(0x0A)のみで構成されていると想定できます。 パターンの説明によると、このテキストブロックのサブセットとして一致が見つかった場合、この一致を返すか印刷する必要があります。一致するものが長方形でない可能性がある場合、いくつかの予約文字を使用して長方形領域にパディングする必要があります。複数の有効な一致がある場合、返される一致の選択方法(最大、最小、最初など)を決定できます。 一部のアプリケーションでは、実装が一致自体ではなく一致の位置を返すことができれば便利かもしれませんが、これは要件ではありません。 少なくとも、言語は、入力の連続した長方形のサブ領域としてパターンに一致できる必要があります。 あなたの答えは以下を含むべきです: 記述言語の。 作業実施。これは、プログラム、または選択した言語の関数/クラスのセットです。 以下に示す例を解決するためにどのように使用できるかを示すことにより、言語を実証する必要があります。あなたの言語はそれらのすべてに一致する必要はありませんが、これらのうち少なくとも8つに一致できる必要があります。あなたの言語が私たちが思いもしなかった素晴らしいことをすることができるなら、それも同様に自由に含めてください。 答えが既存のアイデアに基づいている場合、それは問題ありませんが、それが当然である場合はクレジットを与えてください。 拡張機能 上記は、有効な提出が満たす必要のある最小値を説明しています。ただし、いくつかの一般化により、次のようなパターンマッチング言語がさらに便利になります。 パターンを1つ以上のエッジに固定できるため、入力領域全体に特定のパターンがあるかどうかを確認できます。 1つだけではなく、すべての一致を生成します。重複する一致のセマンティクスを選択できます。 入力として四角形以外のテキストを使用します。 パターンで非矩形の一致を指定できるようにします。このような場合、出力は予約文字を含む長方形に埋め込まれる必要があります。 パターンが穴との一致を指定できるようにします。 特定のオフセットで表示される2つの文字のように、不連続な一致を許可します。 回転と反射の簡単な指定。 必要に応じて、入力を周期的に円柱またはトーラスとして扱い、反対側のエッジが隣接していると見なします。 得点 この課題の主な目標は、将来使用される可能性のある効果的な2Dパターンマッチング言語を作成することです。そのため、「例を解決するための最短結合長」などのスコアリングシステムは、一般的な使いやすさを犠牲にして特定の機能をハードコーディングすることになります。したがって、このチャレンジは人気コンテストとして実施するのが最適であると判断しました。純投票数が最も多い提出が勝ちです。人々がどのように投票するかを強制することはできませんが、投票者が理想的に探すべきものについてのいくつかのガイドラインを以下に示します。 表現力。この質問で提示された例以外にも、言語はさまざまな問題を解決できますか?推奨される拡張機能のいずれかをサポートしていますか? 読みやすさ。表記法はどの程度直感的ですか(少なくとも基本的な構文を知っている人にとって)? Golfitude。これはまだCodeGolf.SEです。このサイトの目的のために、パターンを記述するためのコードをほとんど必要としないマッチング言語があることはもちろん素晴らしいことです。 問題の例 次のスタックスニペットは、2次元パターンマッチング言語で対処できる16の問題例を示しています。各例には短い問題の説明が含まれており、通常、一致を検出できる1つの入力例と、一致が検出できない1つの例(該当する場合)が後に続きます。 上記のように、あなたの言語はこれらの問題のうち8つを解決できる必要があるだけです。その上にあるものはすべてオプションですが、得られる票の数を増やす必要があります。 コードスニペットを表示 body{font-family:'Helvetica Neue',Arial,sans-serif;color:#444;font-size:13px;width:500px;line-height:1.3}h3{font-size:16px!important;line-height:1.2em!important;margin-bottom:1.2em}code{white-space:pre-wrap;padding:1px 5px;font-family:'Droid Sans Mono',Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;color:#222;background:#eee}p code{padding:1px 5px}pre{overflow:auto;width:auto;width:480px …

3
1つの命令セットコンピューターを設計する!
通知:私は、おもしろいと思った答えに報奨金を差し上げます。 あなたの課題は、チューリング完全な 1命令セットコンピューター(OISC)を設計することです。 OISCは、1つの命令のみを使用する抽象マシンであり、機械語のオペコードが不要です。OISCは、単一の命令を賢明に選択し、無限のリソースを提供することで、複数の命令を持つ従来のコンピューターと同じ方法でユニバーサルコンピューターになることができます。 ここではチューリング完全OISCを作る単一のコマンドの例をいくつか示します。 ルール: その解釈または証拠を提供する必要があります あなたの言語の通訳者を提供する必要があります。このインタプリタは、メモリ/時間によってのみ制限される必要があります(たとえば、ユーザーが課した制限がない必要があります)。(怠laz以外の理由で)あなたの言語の通訳者を提供しない場合、あなたはそれが書かれることが可能であることを証明しなければなりません。通訳が可能でなければなりません。 チューリング完全性を証明する必要があります あなたの言語がチューリング完全であることの正式な証拠を含める必要があります。これを行う簡単な方法は、他のチューリング完全言語と同じ動作を解釈できることを証明することです。解釈する最も基本的な言語はBrainf ** kです。 たとえば、Brainf ** kと同じコマンド(およびユーザーが課すメモリ制限の同じ欠如)をすべて備えた通常の言語は、Brainf ** kで実装できるものはすべて言語で実装できるため、チューリング完全です。 。 これは、非常に実装しやすいチューリング完全言語のリストです。 追加のOISC要件 このOISCには1つの命令のみを含める必要があります。複数の命令を使用して、そのうちの1つをチューリング完全にすることはできません。 OISCは任意の構文を使用できます。あなたはあなたの答えの中で何が命令であり、何がデータであり、何がノーオペレーション(例えば空白)であるかを定義すべきです。クリエイティブに! 引数は整数である必要はありません。たとえば、///はチューリング完全OISCの美しい例です。 入力と出力の取得方法と提供方法は、ユーザーに任されています。ほとんどのOISCは、特定のメモリ位置を介してI / Oを実装しますが、他の方法で実装することもできますので、見つけることをお勧めします。 有効な回答は、投稿に含めるか、言語で解決さ​​れた簡単な課題にリンクすることにより、OISCにサンプルコードを提供する必要があります。 投票 投票者は、退屈な投稿に賛成しないようにしてください。例: 言語 - 同等物 既存のOISCの実装(回答者は独自に作成してください!) 最初の引数が呼び出すコマンドを指定する「OISC」(例) ただし、次のような興味深いクリエイティブな投稿を提出する必要があります。 数学方程式に基づいたOISC ニューラルネットワークに基づくチューリング完全ZISC 特定のメモリ位置以外の方法で出力I / Oが発生するOISC 勝ち 同じように人気コンテスト、最も多くの票と答えが勝ち!がんばろう!

3
私と一緒にゴルフ言語を構築する
多くのPPCGユーザーが、チャットとサンドボックスの両方で、特にMartin Ender、AdmBorkBork、Emigna、およびuser202729でこの課題の作成を支援しました。 私たちのコミュニティは、ゴルフのために特別に設計された一連の言語、つまり「ゴルフ言語」を作成する必要があると考えています。このような言語は、かつては見栄えがよく、今ではぎこちないGolfScriptから、JellyやHuskなどの洗練された簡潔な言語に進化しました。ご覧のとおり、これらの言語は、一連のタスクでますます短くなっています。ですから、ここの周りのゴルフの言語に関する明白な専門家として、私たちは競争する勇気がある他のすべての言語を打ち負かすために一緒に言語を設計するべきです。ビューグルの紹介! ラッパ:頭字語からBuGoL:Bu ilt Go lfing L anguage。 この課題の仕組み 導入部で私がほのめかしているものが得られなかった場合、この課題は回答連鎖課題であり、それぞれが新しいゴルフ言語の通訳者に何かを提供し、各回答でPPCGで競争する能力を向上させます。 言語仕様/通訳の基礎からなる最初の回答を投稿しますが、他のすべての回答はそれから継続します。新規提出により、次のものが提供されます。 言語の仕様の変更 最新の通訳者で、変更点に正確に対応しているもの 言語の更新されたスコア(詳細は少し) 次の3つの方法のいずれかで仕様を変更できます。 単一のコマンドを追加できます 2つの新しいコマンドを追加できます 1つの既存のコマンドの動作を編集できます 新しいインタープリターに関しては、Pythonで書かれた最新バージョンを使用する必要があります。ゴルフする必要はありません。以前に追加したコマンドはすべて、最新のインタープリターと最新のコマンド(追加したコマンド)でテスト可能でなければなりません。また、コメントや文字列リテラルなどのように、インタープリターを更新するときは、攻撃的な言語を使用しないでください。 追加されたコマンドは、あなたが望むことをするかもしれません。唯一の要件は次のとおりです。 攻撃的な出力を生成しません 別のコマンドとは異なります サンプルの課題の1つが完了するのを妨げません これらとは別に、必要に応じて特定または一般的なものにすることができます。また、任意の文字を使用できます。追加したコマンドが「新しいコマンド」であるかどうかわからない場合は、コメントでお気軽にお問い合わせください。 言語のスコア あなたは、すべての新しい提出物に言語のスコアを含める必要があることに気づいたかもしれません。そのスコアは、このチャレンジが永遠に続くことを防ぐものであり、次のように定義されます。 現在のスコアは、言語が20以下のタスクを完了するために必要なバイトカウントの合計です。 各タスクには、標準I / Oルールが適用され、標準の抜け穴が適用されます。 20のタスク: "こんにちは世界!" –文字列を出力するHello, World! 1、2、Fizz、4、Buzz – 1から100までの各整数を別々の行に出力します。3のFizz倍数が、5のBuzz倍数が、両方の倍数が、FizzBuzz ソースコードに数字を含めずに数字2014を生成する – 外部変数やランダムシードにアクセスせずに、ソースコードの文字を使用せずに数字2014を出力します0123456789 難読化されたHello World – Hello, World!次のセットの少なくとも2つの文字を使用せずに文字列を出力します:hlwd、eor01および27(大文字と小文字を区別しない) お気に入りのプログラミング言語にハッピーバースデーを歌う –選択した言語で、次を出力します。 Happy Birthday …

30
賢い人のMira気楼
むかしむかし、Quoraでこの質問/回答を読んでいた FizzBu​​zzテストに合格できないコンピューターサイエンスの学位を持つプログラマーは本当にいますか このコードは明白な答えとして与えられます for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i もちろん、FizzBu​​zzは死ぬまでゴルフにかけられましたが、それはこの質問の目的ではありません。あなたはコメントで、4の倍数の印刷「ジャズ」などの追加条件を簡単に追加できるので、この明白な答えは素晴らしいと誰かが言及していることがわかります(同意しません。このスキームを拡張するにはO(2 ** n )コード行。) あなたの挑戦は、仲間によって判断されるようにFizzJazzBuzzの最も美しいバージョンを書くことです。 投票者が考慮すべき事項: ドライ 除算/モジュラス演算の効率 Quoraに関する回答の多くはPythonを使用していましたが、ここではそのような言語の制限はありません。 …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

1
無制限の言語
このサイトでの私のお気に入りのチャレンジの1つは、ソースが制限されたチャレンジです。これらの課題は、潜在的な回答のソースが通過しなければならないコンピューターの扱いやすい制限を課します。私はこれらの挑戦がとても好きで、私はこれらの挑戦で勝つために設計されたゴルフ言語に今しばらく取り組んでいます。今、私はあなたに挑戦を広げたいです。あなたの仕事は、制限されたさまざまなソースタスクを解決する言語を設計することです。言語を設計および実装する時間です。この時点で、変更や新しい追加は競合せず、すべての提出物はソースが制限された挑戦の挑戦に向かいます。 得点 課題を投稿する前に、解決すべき簡単な課題のリストと、従うべきソースの制限のリストを考えます。チャレンジとソースの制限が一致するたびに、言語は0〜2ポイント獲得できます。(10の課題と10の制限があり、合計100の組み合わせになります)言語スコア 150バイト未満の制限でタスクを完了できる場合は1ポイント ソリューションが競合する言語の最短ソリューションである場合は2ポイント(両方の言語が同点の場合は2ポイントを獲得します) 150バイト未満の制限でタスクを完了するプログラムを作成できない場合、0ポイント。 スコアは、可能なすべてのマッチアップで獲得したすべてのポイントの合計になります。目標は、最高のスコアを取得することです。他の人が各チャレンジの解決策をゴルフしてスコアを改善するのを手伝うかもしれません。 投稿時に各リストの4つの項目を明らかにし、2番目の回答の1週間後にさらに8つの項目を明らかにします。最初の週の前に両方の部分が明らかになったマッチングでは、1ポイント(最短の提出はカウントされません)のみを獲得できます。これにより、作業中に言語がどれだけうまく積み重ねられているかを知ることができますが、すべての課題と制限を組み込むためだけに言語を設計することはできません。 目的のカテゴリのハッシュを質問に含めるので、どのパーティーにも有利になるように週中にカテゴリを変更しないようにすることができます。さらに、1週間が経過するまで誰にも隠されたパラメーターを伝えたり、自分でチャレンジに参加したりしません。 既存の言語 この課題は既存のすべての言語に開かれていますが、あなたがその言語の作成者でない場合は、コミュニティwikiに回答して、コミュニティの他のメンバーがスコアに直接貢献できるようにしてください。コマンドラインフラグは制限に従う必要はありませんが、すべてのプログラムは同じコマンドライン引数を使用して実行する必要があります(つまり、いずれかを選択してそれを使用する必要があります)。これらはバイトカウントに追加されません。 課題と制限 使用するコードページに関係なく、バイナリのASCIIエンコーディングに制限が適用されます。これらの一部は、チャレンジのio要件と制限のソース制限を継承するサイトの既存の質問にリンクしています。「ビルトインの禁止」やリンクされた課題に関する既存のメタコンセンサスの上書きは無視できます。 警告の言葉として:弁護士を支配しようとしないでください。競争であることは知っていますが、基本的に100のサブチャレンジチャレンジがあるため、すべてが完全に問題がないことを保証することはできません。楽しんでみてください。 課題 整数のリストを並べ替える 印刷する Hello, world! 括弧のバランスが取れているかどうかを判別 素数のテスト 制限事項 奇数バイトのみ(8ビットごとに奇数でなければなりません) ダブルバイト バイトは昇順です(各バイトは最後よりも大きい) ソースコードは回文です 残りの基準には、次のsha512ハッシュがあります。 4de5eca33c6270798606cf1412820c4ce112d8b927ef02877f36795b2b15ffacca51ea598fa89b8d6bc9f4cde53810e0e7ade30e536e52e28f40a6a13841dfc5 -

3
人生がレモンを与えたら、レモネードを作りなさい
チャレンジ あなたはどこにでも単語が、入力文字列が与えられます"Lemon"、それはに変換する必要が発見され"Lemonade" たがa、d、およびe文のどこかから借りなければなりません。 例 入力例: 子供の頃にレモンを見つけました 出力例: 私は子供の頃レモネードを作りました レモネードは、元から次の上付き文字を盗んで作成されました 私はフン日間レモネードWH 電子を nは私がいた子供 これは、「e」、「d」、および「a」という可能な出力例の1つにすぎません。これはどこからでも取得できます(もちろん、単語以外はlemon) コメント •、、またはsが十分eでない場合は、指定された文字で実行可能なことを出力する必要があります。たとえば、入力は出力されますadbdblemonbblemond • lemonテキストは常にスタンドアロン(各側のスペース)であるとは限りません。たとえばlemons、入力のどこかに単語があり、出力は次のようになります。lemonades •入力にはlemon、0であっても任意の数のsを含めることができますlemon(この場合、出力は入力と同一になります)。 •レモネードを大文字と小文字で作成できます。たとえば、にleMonなる可能性がleMonadeあり、ade借りたものはどのような場合でも可能です(したがって、になる可能性もありますleMonADe)。あなたが借りた手紙のケースは、あなたがそれを借りたときの状態のままでなければなりません。(入力例->出力、he hAD lemOn-> h h lemOnADe) •完全なプログラムである必要はありません。機能だけで十分です。 •入力はCP437文字セットのみであると仮定できます。 コードゴルフ これはcode-golfであるため、バイト数が最も少なくなります! 擬似テストケース *注意:特定の入力に対して複数の出力が存在する可能性があるため、プログラムはこれらのテストケースのように正確に出力されない場合があります。これは、人々がロジックを理解できるようにするためです。 入力:EpaD leMons 出力:p LeMonaDEs 入力:hello world 出力:hello world 入力:レモンレモン 出力:レモンレモン *( 、、 文字は別の「レモン」から取られてはいけません)ead 入力:HE HADレモネード 出力:HH lemonADEade 入力:あなたはレモンが好きですか?あなたはレモンで私を苦しめました! 出力:o lemonADesが好きですか?あなたはレモネードを盛り上げました! …
21 code-golf  string  code-golf  parsing  internet  stack-exchange-api  code-challenge  kolmogorov-complexity  restricted-source  brain-flak  python  logic  pyth  code-golf  string  search  optimized-output  code-golf  tips  language-design  golfing-language  code-golf  tips  language-design  code-golf  number  sorting  pi  code-golf  math  number  code-golf  string  balanced-string  classification  brain-flak  code-golf  math  number-theory  decision-problem  code-golf  tips  code-golf  number  sequence  code-golf  balanced-string  brain-flak  code-golf  math  sequence  arithmetic  fibonacci  code-golf  math  parsing  code-golf  string  keyboard  code-golf  code-golf  string  source-layout  whitespace  code-golf  math  rational-numbers  code-golf  string  code-golf  string  code-golf  math  sequence  code-golf  number  floating-point  code-golf  string  decision-problem  subsequence  code-golf  string  kolmogorov-complexity  code-golf  string  permutations  balanced-string  brain-flak  code-golf  string  math  number  code-golf  string  primes  cipher  code-golf  string  ascii-art  chemistry  code-golf  ascii-art  grid  counting  code-golf  math  arithmetic  integer  code-golf  number  kolmogorov-complexity  code-golf  ascii-art  kolmogorov-complexity  sequence  metagolf  brain-flak  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  whitespace 

19
三角法プログラムを有効にする
Triangularityは、Xcoder氏によって開発された新しいエソランであり、コード構造は非常に具体的なパターンに従う必要があります。 nコードのth行について2n-1は、プログラムの正確な文字がその上になければなりません。これにより、最初の行は1文字のみで、残りは2ずつ増加する三角形/ピラミッドの形状になります。 各行の.左右にsを埋め込み、文字が行の中央に配置され、すべての行が同じ長さで埋め込まれるようにする必要があります。lがプログラムの行数として定義されている場合、プログラムの各行の長さは2 * l - 1 たとえば、左側のプログラムは有効ですが、右側のプログラムは無効です。 Valid | Invalid | ...A... | ABCDE ..BCD.. | FGH .EFGHI. | IJKLMN JKLMNOP | OPQRS 有効な構造にレイアウトすると、名前が明らかになります。 仕事 あなたの仕事は、三角コードを表す単一行の文字列を入力として受け取り、それを上記のように有効なコードに変換して出力することです。 I / Oの仕様: 入力には、範囲内の文字のみが含まれます 0x20 - 0x7e 入力の長さは常に二乗数であるため、うまくパディング可能です。 出力パディングには、他のものではなくドットを使用する必要があります。 受け入れ可能な任意の方法で入力および出力できます。これはコードゴルフなので、バイト単位の最短コードが勝ちです! テストケース input ---- output g ---- g PcSa ---- .P. cSa DfJ0vCq7G ---- …
19 code-golf  string  code-golf  combinatorics  code-golf  math  number  code-golf  matrix  code-golf  string  decision-problem  code-golf  internet  code-golf  number  number-theory  integer  expression-building  code-challenge  primes  cops-and-robbers  obfuscation  code-challenge  primes  cops-and-robbers  obfuscation  code-golf  string  balanced-string  code-golf  quine  code-generation  code-golf  matrix  code-golf  tips  c#  code-golf  ascii-art  code-golf  ascii-art  source-layout  code-golf  quine  source-layout  popularity-contest  language-design  code-golf  array-manipulation  subsequence  code-golf  matrix  math  code-challenge  game  graph-theory  atomic-code-golf  code-golf  number  integer  polynomials  equation  code-golf  array-manipulation  sorting 

5
ゴルフ言語での保管のヒント
ゴルフの言語を書いています。 コードゴルフ言語で保存するための変数、スタック、テープ、レジスタなどを提案しますか?暗黙的な入力はどうですか? 大まかな定義: 変数は、値が割り当てられ、以降その名前で取り出すことができることを単に名前(長いゴルフの言語で、通常は1文字)です。 レジスタは、変数のようなものですが、それは値を取得/設定するための(通常はシングルバイト)独自のコマンドがあります。 スタックは、最も最近追加された値(「上」値)が変更されるものである値の可変長配列/リストです。 キューは、「上の値を除いて、スタックのようなものです底が」改変されているものです。 テープは、各値がインデックスを有する値の静的配列/リストです。スタックとテープの主な違いは、テープ上の値がインプレースで変更されることです。 さまざまなシナリオおよび全体に対する各オプションの長所と短所を知っていただければ幸いです。意見を避け、推論を伴う陳述をバックアップしてください。

1
ターピットからの脱出(警官)
これは、言語の定義とそれらが完全なチューリングであることを証明することに基づく警官と強盗の挑戦です。 これは警官のスレッドです。強盗のスレッドはこちらです。 警官 警官として、次の2つを準備します。 プログラミング言語またはその他の計算システムの正式な仕様。(計算システムは以下に定義されています。) 以下のやや厳密な定義に従って、システムがチューリング完全であることの証明。 あなたはあなたの言語の仕様を投稿し、強盗はそのチューリングの完全性を証明することによってそれを「クラッキング」しようとします。提出物が1週間以内にクラックされない場合は、安全なものとしてマークし、証拠を投稿できます。(あなたがそれを修正できない限り、誰かがあなたの証明に欠陥を見つけた場合、あなたの答えは無効になる可能性があります。) これは人気コンテストなので、投票数が最も多く、クラックや無効化されていない答えが勝者になります。挑戦は自由回答です-私は答えを受け入れません。 この課題のために、計算システムは次の4つとして定義されます。 「プログラムセット」P。これは、数え切れないほど無限のセットになります。たとえば、文字列、整数、バイナリツリー、グリッド上のピクセルの構成などです(ただし、以下の技術的な制限を参照してください)。 「入力セット」I。これも数え切れないほど無限のセットであり、と同じセットである必要はありませんP(ただし、そうである場合もあります)。 「出力セット」はO、同様に無数に無限のセットであり、Pまたはと同じであってもなくてもかまいません。I 出力生成のための決定論的、機構的手順oプログラムからpの入力i、p、iおよびoのメンバーでありP、IそしてOそれぞれ。この手順は、原則として、チューリングマシンまたは他の抽象的な計算モデルに実装できるような手順にする必要があります。もちろん、プログラムとその入力によっては、手順が停止しない場合があります。 セットP、IそしてOあなたが計算可能な方法で文字列としてそれらを表現できるようなものでなければなりません。(ほとんどの賢明な選択の場合、これは重要ではありません。このルールは、停止しないチューリングマシンのセットなどの奇妙なセットを選択しないようにするために存在します。) チューリング完全性は次のように定義されます。 任意の計算部分の機能のためにfからIのO、プログラムが存在するp中でP、そのような与えられたp入力i、出力されf(i)た場合f(i)の値を有します。(それ以外の場合、プログラムは停止しません。) 上記の定義で「計算可能」という用語は、「チューリングマシンを使用して計算できる」という意味です。 どちらのことを注意ルール110もビット単位のサイクリックタグは、彼らが必要な入出力構造を持っていないので、この定義にチューリング完全です。ラムダ計算は、私たちが定義IしO、教会の数字である限り、チューリング完全です。(一般的にラムダ式を採用するIと、チューリング完全ではありませんO。) 言語の実装を提供する必要はありませんが、必要に応じて回答に含めることもできます。ただし、言語を定義するために実装に依存するべきではありません。仕様自体が完全である必要があり、仕様と実装の間に矛盾がある場合、これは実装のバグとして扱われるべきです。

1
ムリエルのような言語と実装を作成する
ムリエルは、ループする唯一の方法がクインを作成して実行することである言語です。あなたの仕事は、このプロパティを使用して独自の言語を作成し、それを既存の言語で実装することです。 Murielのような言語を次のように定義します。 Murielの@コマンドまたはpythonのコマンドと同様に、独自の言語でコードを実行するための組み込みコマンドがありますexec。 チューリング完成です。 組み込みの実行コマンドを削除すると、チューリングが完了しなくなります。 Murielは@、組み込みの実行コマンドとして、Murielに似ています。SmurfもMurielに似ています(組み込みの実行コマンドはx)。Pythonは、削除してもチューリング完全であるため、ムリエルのようなものではありませんexec。 あなたの仕事は、ムリエルのようなプログラミング言語を作成し、それを選択した言語で実装することです。あなたのスコアは、あなたが最小化しようとしている実装の長さです。 ノート: 組み込みの実行は、Murielとまったく同じように機能する必要はありません。子プログラムの終了、エラー、スコープなどをどのように処理するかはあなた次第です... 実装を記述する言語自体がムリエルのようであってはなりません。(これは@有効なエントリではありません。)また、この投稿の前に存在している必要があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.