並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 267件

新着順 人気順

computer-scienceの検索結果81 - 120 件 / 267件

  • おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりません

    先日YコンビネータのきしださんのYコンビネータのエントリが話題になっていました。 ずいぶん日にちが経ってしまいましたが、自分も、自分なりにYコンビネータのあたりを絵解きで整理してみたいと思います。きしださんのエントリタイトル*1に引っ掛けて、目標として、自分の父親(非プログラマ。その辺のおっさん)でも解る内容を目指します。 なぜ不動点演算子というのか、不動点だったらなぜ再帰なのか、この辺りも含めて、実感を持って納得できればいいなと思います。 きしださんのエントリのおさらい 本題の前に、きしださんのエントリをおさらいしておきます。 Yコンビネータはただのオモチャじゃないんだよ 関数だけで色んな事が出来る 条件分岐をする関数ってのもある。 再帰(ループ)を作れる関数もある。←これがYコンビネータ。 数値も関数で表現できる。 つまり、関数だけで、条件分岐も、再帰(ループ)も、数値も作れちゃう!!

      おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりません
    • エイダ・ラブレス - Wikipedia

      この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "エイダ・ラブレス" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2013年12月) 1840年ごろの肖像画、 (作)アルフレッド・エドワード・シャロン アントワーヌ・クロード(英語版)による銀板写真。1843年または1850年の写真とされる。 ラブレース伯爵夫人オーガスタ・エイダ・キング(Augusta Ada King, Countess of Lovelace, 1815年12月10日 - 1852年11月27日)は、19世紀のイギリスの貴族・数学者。主にチャールズ・バベッジの考案した初期の汎用計算機である解析機関についての著作

        エイダ・ラブレス - Wikipedia
      • クロージャ再考 - Qiita

        はじめに 中級以上のJavaScriptプログラマを目指す上で、避けては通れない壁の一つは クロージャ(Closure) だと思います。「関数の外側で定義された変数を持つ関数の実行時オブジェクトです」とさらっと説明されることが多いですが、シンプルなだけに理解したつもりになって実は使いどころが分からないってことになりがちです。きちんと自分のものにするには基本から丁寧に理解しないとダメですねってことで、今回はクロージャについてその背景から調べてみたいと思います。 歴史と語源 まずは歴史から振り返ってみたいと思います。Wikipediaによるクロージャの解説では、以下のような説明があります。 クロージャの概念は、1960年代にラムダ計算の機械的な実行モデルを構築するために生み出され、1970年に 静的スコープ と 第一級関数 をサポートするPALプログラミング言語で最初に実装された。1964年、

          クロージャ再考 - Qiita
        • Amazon.co.jp: 世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~: Gayle Laakmann McDowell (著), Ozy (翻訳), 秋葉拓哉 (翻訳), 岩田陽一 (翻訳), 北川宜稔 (翻訳), 秋葉拓哉 (監修), 岩田陽一 (監修), 北川宜稔 (監修): 本

            Amazon.co.jp: 世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~: Gayle Laakmann McDowell (著), Ozy (翻訳), 秋葉拓哉 (翻訳), 岩田陽一 (翻訳), 北川宜稔 (翻訳), 秋葉拓哉 (監修), 岩田陽一 (監修), 北川宜稔 (監修): 本
          • 書評:アンダースタンディングコンピュテーション - 西尾泰和のはてなダイアリー

            監訳者のささださんから「アンダースタンディング コンピュテーション―単純な機械から不可能なプログラムまで」を頂いたので紹介。 「プログラムの『意味』とは何か?」という抽象的な問いに真っ向から挑む本。プログラムの「意味」には、「それによって計算機がどう操作されるか」で表現する方法と、「それを別の(もっとシンプルな)言語に変換するとしたらどうなるか」で表現する手法とがある。本書ではこの2つの手法があることを解説し、それぞれの手法について深堀りしていく。 「計算機がどう操作されるか」路線では、もちろん次に「『計算機』って何だ?」という問いに挑む必要性が出てくる。まずは能力の劣った計算機である「決定性有限オートマトン」から初めて、それが正規表現というある種のプログラミング言語とどういう対応の仕方をしているのかを解説するのにまる1章割いている。このストーリー仕立ては面白い。 その後、有限オートマトン

              書評:アンダースタンディングコンピュテーション - 西尾泰和のはてなダイアリー
            • 有限オートマトン - Wikipedia

              オートマトン理論 有限オートマトン(ゆうげんオートマトン、英: finite automaton)または有限状態機械(ゆうげんじょうたいきかい、()英: finite state machine, FSM)とは、有限個の状態と遷移と動作の組み合わせからなる数学的に抽象化された「ふるまいのモデル」である。デジタル回路やプログラムの設計で使われることがあり、ある一連の状態をとったときどのように論理が流れるかを調べることができる。有限個の「状態」のうち1つの状態をとる。ある時点では1つの状態しかとらず、それをその時点の「現在状態」と呼ぶ。何らかのイベントや条件によってある状態から別の状態へと移行し、それを「遷移」と呼ぶ。それぞれの現在状態から遷移しうる状態と、遷移のきっかけとなる条件を列挙することで定義される。 有限オートマトンは様々な問題に応用でき、半導体設計の自動化、通信プロトコル設計、構文

                有限オートマトン - Wikipedia
              • Raft Consensus Algorithm

                What is Raft? Raft is a consensus algorithm that is designed to be easy to understand. It's equivalent to Paxos in fault-tolerance and performance. The difference is that it's decomposed into relatively independent subproblems, and it cleanly addresses all major pieces needed for practical systems. We hope Raft will make consensus available to a wider audience, and that this wider audience will be

                  Raft Consensus Algorithm
                • GitHub - minghai/sicp-pdf: SICP PDF with Texinfo and LaTeX source

                  日本語版ではTexinfoファイルがLaTeXファイル上の変更を反映しておりません(すみません)。そのため直接、xelatex jsicp.texを実行して下さい。 The file preamble.tex contains all the configuration and style declarations. Note that the LaTeX file sicp.tex will be generated on the fly, overwriting the previous version. To keep sicp.texi and sicp.tex in sync, I make changes to sicp.texi, which is already a hybrid of Texinfo and LaTeX code. This is fine, becaus

                    GitHub - minghai/sicp-pdf: SICP PDF with Texinfo and LaTeX source
                  • SVMの定番入門書「サポートベクターマシン入門(赤本)」の読み方 - EchizenBlog-Zwei

                    SVMを学びたい人にとっては「サポートベクターマシン入門」通称「赤本」は最適な入門書であるといえる。理論から実践までバランスよく解説されており、本書を読むだけでSVMの実装が可能になる。 しかし本書はSF小説を彷彿とさせる独特な翻訳の文体のため機械学習に不慣れな読者にとっては読みこなすのは苦しい戦いとなる。本来なら原書をオススメしたいところだが、そうはいっても英語はちょっとという人も多いはず。 そこで本記事では赤本のオススメな読み方を紹介してみる。 1.「わかパタ」で準備運動をしよう 泳ぎのうまい人でもいきなり水に飛び込むのは危険。まずは準備運動をして体を温める。これには「わかりやすいパターン認識」がオススメ。とりあえず2章まで、余裕があれば3章まで読んでおけば充分。 2.赤本を枕元において一晩寝よう さて準備運動が済んだら早速赤本にトライ!したいところだが赤本の放つ瘴気で心を蝕まれないよ

                      SVMの定番入門書「サポートベクターマシン入門(赤本)」の読み方 - EchizenBlog-Zwei
                    • SCIgen - An Automatic CS Paper Generator

                      About SCIgen is a program that generates random Computer Science research papers, including graphs, figures, and citations. It uses a hand-written context-free grammar to form all elements of the papers. Our aim here is to maximize amusement, rather than coherence. One useful purpose for such a program is to auto-generate submissions to conferences that you suspect might have very low submission s

                      • Teach Yourself Computer Science

                        Note: this guide was extensively updated in May 2020. For the prior version, see here. If you’re a self-taught engineer or bootcamp grad, you owe it to yourself to learn computer science. Thankfully, you can give yourself a world-class CS education without investing years and a small fortune in a degree program 💸. There are plenty of resources out there, but some are better than others. You don’t

                        • Linuxのスケジューリング調査と超低優先度プロセスの実装

                          • The Art of Computer Programming Volume1

                              The Art of Computer Programming Volume1
                            • 計算機プログラムの構造と解釈 - Wikipedia

                              『計算機プログラムの構造と解釈』(Structure and Interpretation of Computer Programs。原題の略称SICPがよく使われる)は、1985年にMIT出版から刊行された、計算機科学分野の古典的な教科書。著者はマサチューセッツ工科大学 (MIT) の教授ハル・アベルソンとジェラルド・ジェイ・サスマン、ジュリー・サスマン。かつてMITコンピュータ科学科の6.001として知られるプログラミングの入門講義で使われていた[1]。第2版(ハードカバー版 ISBN 0-262-01153-0、ペーパーバック版 ISBN 0-262-51087-1)が1996年に刊行された[2]。計算機科学の古典として広く認められている。 表紙に魔術師が描かれているため魔術師本(Wizard Book)としても知られ、まれに表紙の色をとって紫本(Purple Book)とも呼ばれる

                                計算機プログラムの構造と解釈 - Wikipedia
                              • CAS - Central Authentication Service

                                CalNet Authentication Service CalNet ID: Passphrase (Case Sensitive):

                                • 部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記

                                  この記事はScala Advent Calendar 2022の19日目です. Scalaではジェネリック型の変性(variance)は+や-で指定しますが, 他の言語(たとえば, C#, Kotlin)ではoutやinだったりします. この記事では変性の意味を整理して, なぜScalaでは+/-の記号を使うのか説明します. 追記ただし, ここで説明している内容は基本的にC#やKotlinでも成立する(はずな)ので「なぜこれらの言語では+/-の記号を使わないのか」を説明するものではありません. 個人的には+/-の方がわかりやすいと思うし, out/inの記法は扱っている概念が簡単であるかのような誤解を生む(悪く言えば騙す)のでどちらかと言うと嫌いです. 発端 こういう話題がありました. Scala は共変が + で、反変が - なので理論重視? なのに対して、Kotlin と TypeSc

                                    部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記
                                  • OSS開発者が自分の人生を犠牲にしなくていい。「フルタイムRubyコミッター」という生き方が与えてくれた恩恵 - Findy Engineer Lab

                                    お店のデジタル化を支援するSTORES 株式会社(以下、STORES)は、Rubyコミッターの笹田耕一(@koichisasada)さんと遠藤侑介(@mametter)さんの両名を社員として採用しました。笹田さんと遠藤さんはフルタイムのRubyコミッターとして STORES に入社し、Rubyの機能改善や品質向上のための仕事に専念します。 どのような経緯で、両名は STORES への転職を決めたのでしょうか。そして、今後の具体的な活動内容とは。笹田さんと遠藤さんにお話を伺いました。 「6月は2人で一緒に、フルタイムRubyコミッターとして働く道を探ろう」 笹田さんが取り組む並列並行処理の改善 遠藤さんが取り組む静的型解析 世の中のニーズと本人のモチベーションが合致して生まれる、奇跡的なキャリア 「6月は2人で一緒に、フルタイムRubyコミッターとして働く道を探ろう」 ――転職活動どうもお疲

                                      OSS開発者が自分の人生を犠牲にしなくていい。「フルタイムRubyコミッター」という生き方が与えてくれた恩恵 - Findy Engineer Lab
                                    • 名前空間 - Wikipedia

                                      この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2022年1月) 独自研究が含まれているおそれがあります。(2023年6月) 出典検索?: "名前空間" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL 名前空間(なまえくうかん、英: namespace / name-space)は、名前の集合を分割することで衝突の可能性を低減しつつ参照を容易にする概念である。 この集合は、全事象の元の全ての組み合わせ可能なものからなる集合全体および物理的な名称を指すことが可能である。つまり英字・数字・記号などを組みあわせて作られる名前全てを含む集合である。名前に結び付けられる実体(型や変数や関数)は、名前が

                                      • オートマトン - Wikipedia

                                        この項目では、計算のアルゴリズムについて説明しています。 ジャミロクワイの音楽アルバムについては「オートマトン (アルバム)」をご覧ください。 機械人形については「オートマタ」をご覧ください。 ゲームメディアのAUTOMATONについては「AUTOMATON」をご覧ください。 オートマトン理論 オートマトン (単数形: 英: automaton [ɔːˈtɑməˌtɑn], 複数形: オートマタ(automata [ɔːˈtɑmətə])) とは、自動人形などとも呼ばれる「オートマタ」と同じ語であるが、計算理論において、計算モデルに関して有限オートマトンなどの総称として使われる。また特に「オートマトン理論」と呼ばれる分野では、計算機械のうち計算可能性の点でチューリングマシンよりも制限されているものを特に指して言うこともある。 有限オートマトン 決定的有限オートマトン (Determinis

                                          オートマトン - Wikipedia
                                        • ユビキタス

                                          この項目では、用法、歴史および語源について説明しています。その他のユビキタスについては「ユビキタス (曖昧さ回避)」をご覧ください。 ユビキタス (英: ubiquitous) は、遍在(いつでもどこでも存在すること)をあらわす言葉。 至高の存在が遍在するという点について、宗教体系によって考え方は異なる。キリスト教、ユダヤ教、イスラム教などの一神教では、神と宇宙は別のものだが、神はどこにでも存在している。汎神論的な信念においては、神と宇宙は同一である。万有内在神論的な信念では、神は宇宙に浸透しているが、時間と空間において宇宙を超えている。 宗教における遍在[編集] キリスト教、カバラ哲学、ハシディック哲学では、神は遍在する。旧約聖書や知恵文学によると、神は顕在的に存在することも(詩篇46:1)(イザヤ書57:15)、いつでも被造物全体のあらゆる状況の中に存在することもできる(詩篇33:13

                                          • TechCrunch | Startup and Technology News

                                            When Manny Griffiths worked with a personal injury lawyer after his wife’s car accident, he was surprised by the lack of information and communication from their lawyer regarding their claim.… Proton, the Swiss company behind a suite of privacy-focused apps such as ProtonMail, is following in the footsteps of Signal and Mozilla by transitioning to a new non-profit foundation model. The newly setup

                                              TechCrunch | Startup and Technology News
                                            • 継続 - Wikipedia

                                              のようになる[3]。この式はすなわち、値 v を引数に取り、それに4を足した値を返す関数である。実際、この後 (+ 1 2) の計算結果が v に代入されて、4を足した値が最終的に計算結果が求められるため、この関数は確かに (+ 1 2) を評価する段階での「残りの計算」の表現である。 call/cc[編集] Schemeの call-with-current-continuation (call/cc と省略される) は、その時点での継続を引数として関数を呼び出す手続きである。Schemeの言語仕様書(R7RS[4])には「もっとも単純な例」として次のコードが載っている: このコードは、真正な(終端が空リストである)リストが渡された際にはそのリストの要素数を数えて返し、そうでない場合はfalse値を返す。 goto文を持つ言語の意味論[編集] 継続の概念はgoto文を持つ言語に意味論を与

                                              • コネなし論文なし英語苦手なアラサーのおっさんだけど米国CS大学院入学に頑張ったので全てを晒す ー はじめに - - tkm2261's blog

                                                皆様 こんにちはtkmです。 今回から数回に分けて米国のComputer ScienceのPh.D.とM.S.の受験について語っていきたいと思います。 はじめに 英語(TOEFL)対策 GRE対策 SoP [エッセイ] 対策 国内奨学金応募 推薦状依頼 出願先の決め方 出願とそれまでのスケジュール 出願後の過ごし方 お金編 GPA編 Ph.D.は駄目でしたがUC Irvine MSCSから合格を貰えたので後に続く人たちのためになるっぽいもの書いていきます。 【速報】ワイUC Irvine CS修士に合格 PhDは全滅だったし、修士でいくお金を確保できるか怪しいけど とりあえずコネなし論文なしアラサーでも頭おかしい米国CSの倍率をくぐり抜けたられ事を素直に喜ぼう— Takami Sato (@tkm2261) 2018年4月11日 スペック的には下界を攻めた気がするので多くの人に勇気を与えた

                                                  コネなし論文なし英語苦手なアラサーのおっさんだけど米国CS大学院入学に頑張ったので全てを晒す ー はじめに - - tkm2261's blog
                                                • データ競合(data race)と競合状態(race condition)を混同しない - Qiita

                                                  T/O マルチスレッド・プログラミングの文脈では、「データ競合(data race)」と「競合状態(race condition)」は直交した異なる概念を表す1。両者ともに回避すべき事象だが、問題を取り扱うレイヤは明確に区別されるべき。 データ競合(data race)は、マルチスレッド・プログラム実装上の問題である。 競合状態(race condition)は、並行処理システム設計上の問題である。 ここではJava, C#, C++あたりのマルチスレッド対応手続き型ベースのプログラミング言語を取り上げるが、言語パラダイムによらずマルチスレッド処理(共有メモリ型の並行処理機構)ならば広範に適用可能である。また言語仕様として両者を明確に区別するRust言語も取り上げる。 「データ競合(data race)」が何であるかは、それぞれのプログラミング言語仕様にて定義される。競合状態(race c

                                                    データ競合(data race)と競合状態(race condition)を混同しない - Qiita
                                                  • Computer Science Unplugged

                                                    CS Unplugged is a collection of free teaching material that teaches Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around. New! Adapted CS Unplugged lessons for teaching students and educators online

                                                    • コンピュータの本質は0と1ではない

                                                      これは物理学アドベントカレンダー2021の12/18の記事ですが、書き進めるうちに物理とほぼ無関係になりました。 そのうえ途中で宣伝が入ります。 さてコンピュータと言えば 「あなたはまるでコンピュータだわ。0と1で考える機械人間なのよ」 という罵声に象徴されるように、本質は0と1、という思想が大流行しています。 これにイチャモンを付ける記事なわけですが、まず前提を知るために、定番の「コンピュータのしくみ」のお話をします。 コンピュータの、よくある説明 雑に描くと、電子回路としてのコンピュータは以下のような感じです1。 CPUに様々なデバイスが繋がっています。 青(0)と赤(1)がチカチカしていますが、これは電気信号を表しています。 人がキーボードを叩くと、0や1の信号がCPUに届き、情報が処理され、そして0と1の信号がディスプレイに送られるわけです。 処理の中心はCPUですが、これは 0や

                                                      • チャールズ・バベッジ - Wikipedia

                                                        チャールズ・バベッジ(Charles Babbage、FRS、1791年12月26日 - 1871年10月18日[1])は、イギリスの数学者。哲学者、計算機科学者でもあり、世界で初めて「プログラム可能」な計算機を考案した[2]。検眼鏡の発明者。 「コンピュータの父」と言われることもあり[3]、初期の機械式計算機を発明し、さらに複雑な設計に到達した[4]。その完成しなかった機械の一部はロンドンに所在するサイエンス・ミュージアムに展示されている。1991年、バベッジの本来の設計に基づいて階差機関が組み立てられ、完全に機能した。これは19世紀当時の技術の精度に合わせて作られており、バベッジのマシンが当時完成していれば動作していたことを証明した。9年後、サイエンス・ミュージアムはバベッジが階差機関用に設計したプリンターも完成させた。 ロンドンに生を受ける。正確な生誕地については議論があるが、ロンド

                                                          チャールズ・バベッジ - Wikipedia
                                                        • ブート - Wikipedia

                                                          この項目では、コンピュータの動作について説明しています。インドの悪霊については「ブータ」を、ブート盤については「海賊盤」をご覧ください。 Windows XPをブート中のインターネット公衆電話 ブート(英: boot)またはブートストラップ(英: bootstrap)は、コンピュータシステムの電源投入時、あるいはシステムのリセット後、モニタやOSなどなんらかの基本的なシステムソフトウェアを主記憶に展開し、ユーザプログラムを実行できるようにするまでの処理の流れをいう。ブートローダ(英: boot loader)は、以上のプロセスで使われるローダ、すなわち不揮発性の補助記憶にある目的のプログラムを読み出し、揮発性の主記憶に書き込むプログラムのことである。 電源投入時のブートのことを「コールドブート」、リセットされたことによるブートを「ウォームブート」という。ウォームブートでは、コールドブートに

                                                            ブート - Wikipedia
                                                          • コルーチン - Wikipedia

                                                            コルーチン(英: co-routine)とはプログラミングの構造の一種。サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはいったん処理を中断した後、続きから処理を再開できる。接頭辞 co は協調を意味するが、複数のコルーチンが中断・継続により協調動作を行うことによる。 サブルーチンと異なり、状態管理を意識せずに行えるため、協調的処理、イテレータ、無限リスト、パイプなど、継続状況を持つプログラムが容易に記述できる。 コルーチンはサブルーチンを一般化したものと考えられる。コルーチンをサポートする言語には Modula-2、Simula、Icon、Lua、C#、Limbo、Swift などがある。マルチスレッドで理論的には同じことができるため、現在はそちらが使われるケースが多い。これはマルチスレッドであれば直接OSやCPUスレッドの支援を受けられることや、エント

                                                            • 詳説コンピュテーション式 - ぐるぐる~

                                                              コンピュテーション式とは コンピュテーション式とは、機能を制限したマクロです。 ・・・では投げやりすぎるので、もうちょっとだけ説明を試みると、 「式変形によって言語の用意する構文の意味をカスタマイズできるようにする仕組み」です。 モナド用の構文として紹介されることもありますが、それはコンピュテーション式という仕組みの上でモナドを扱っているだけに過ぎません。 もっとも、コンピュテーション式はモナド用の構文として使うことが一番多いでしょうから、 モナド用の構文と理解しても問題はないでしょう。 また、このような状況を考えると、モナド以外のことにコンピュテーション式を使う場合は、 現状では「これはモナドではありません」という表明をドキュメントなりなんなりでしておくのが無難でしょう。 特に、let!とreturnを提供する場合でコンピュテーション式をモナドではない構文とする場合は、 うるさいくらいそ

                                                                詳説コンピュテーション式 - ぐるぐる~
                                                              • 副作用 (プログラム) - Wikipedia

                                                                この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "副作用" プログラム – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2016年3月) プログラミングにおいて、式の評価による作用には、主たる作用とそれ以外の副作用(side effect)とがある[1][2]。 式は、評価値を得ること(※関数では「引数を受け取り値を返す」と表現する)が主たる作用とされ、それ以外のコンピュータの論理的状態(ローカル環境以外の状態変数の値)を変化させる作用を副作用という[3][4][5]。 副作用の例としては、グローバル変数や静的ローカル変数の変更、ファイルの読み書きなどのI/O実行、などがある。 一方、高水

                                                                • Amazon.co.jp: コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方: Noam Nisan (著), Shimon Schocken (著), 斎藤康毅 (翻訳): 本

                                                                    Amazon.co.jp: コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方: Noam Nisan (著), Shimon Schocken (著), 斎藤康毅 (翻訳): 本
                                                                  • クワインと対角化定理 ~計算理論入門~ - いきるちから

                                                                    はじめに クワインとは この前プログラミングの教科書を読んでいたら面白い問題があった。大雑把には次のような感じ。*1 自分自身のソースコードを出力するプログラムを書け。 調べてみたところクワインというらしい。細かい話をすると入力を受け取るのもダメだそうなので上の問題文よりは厳しい。詳しい話はWikipediaにある。 クワイン (プログラミング) - Wikipedia 結構難しいし、SchemeとかHaskellはまだしもCのやつとか何やってるのか初見じゃ意味不明。頭がこんがらがるのが味わえるのでぜひ考えてみて欲しい。 クワインと計算理論 ところで、計算理論をかじったことある人は「これ対角化して不動点つくればいいんじゃね?」と気がつくと思う。実際その方針でこの問題は解けるし、Cとかのわけ分からん例もこのことを理解してるとすんなり分かる。もろに理屈っぽい計算理論が割と身近に思えるクワインに

                                                                    • 日本ソフトウェア科学会 ホームページ

                                                                      2024年3月27日開催の本会理事会において, 論文投稿案内および論文査読規定が改訂されました. また, 投稿者用マニュアルを追加しました. 詳しくは 投稿規定等 をご覧ください.

                                                                      • これからの時代のメタプログラミングJavaScriptの正義を語ろう - Qiita

                                                                        JavaScript Advent Calendar 2017 - Qiitaの第一日目です。JavaScriptにおいてメタプログラミングを用いて、エンジニアリングにおける邪悪と闘うという趣旨の記事です。 秋のJavaScript祭 in mixi 2017 - Javascript祭りでこれからのメタプログラミングJavaScriptの正義を語ろうという発表をしてきました。この記事はそれをベースにしています。 技術書典3で頒布した簡単JavaScript AST入門という同人誌ですが、どうも電子版を求める声が多いので、簡単JavaScript AST入門 - 東京ラビットハウス - BOOTH で電子版を販売しています。 結論から メタプログラミングを活用すればこの三つを達成できます。 コーディングタイムコンパイルという新しい概念・技術 暖かみ溢れる手作業を根絶 生産性を向上して、相対

                                                                          これからの時代のメタプログラミングJavaScriptの正義を語ろう - Qiita
                                                                        • デニス・リッチー - Wikipedia

                                                                          デニス・マカリスター・リッチー(Dennis MacAlistair Ritchie、1941年9月9日 - 2011年10月12日[1][2][3][4][5])は、アメリカ合衆国の計算機科学者。 コンピュータ言語のC言語を開発し、ケン・トンプソンと共にオペレーティングシステム(OS)であるUNIX、Multicsなどの開発者として知られる[2]。2007年に引退するまで、ルーセント・テクノロジーズのシステムソフトウェア研究部門を指揮していた。技術的なコミュニティの中では、彼を指して "dmr"(ベル研究所におけるアカウント名)と呼ぶことがある。 1941年9月9日、ニューヨーク州ブロンクスビルに生まれる。父親のアリステア・E・リッチーはベル研究所の研究者で、スイッチング回路理論(英語版)に関する共著書 The Design of Switching Circuits がある。子どものこ

                                                                            デニス・リッチー - Wikipedia
                                                                          • 抽象構文木 - Wikipedia

                                                                            抽象構文木(ちゅうしょうこうぶんぎ、英: abstract syntax tree、AST)は、通常の構文木(具象構文木あるいは解析木とも言う)から、言語の意味に関係ない情報を取り除き、意味に関係ある情報のみを取り出した(抽象した)木構造の木である。 理論的には、有限なラベル付き有向木である。また、演算子と変数や定数といったオペランドから成る数式などのようなものに対する抽象構文木を例にすると、分枝点は演算子、葉はオペランド(つまり、変数や定数)である。 抽象構文木は、構文解析によって直接得られる具象構文木と、最終的な意味表現などのデータ構造との、中間にあるものと位置付けることができる。コンパイラやインタプリタといったプログラミング言語処理系の場合は、中間表現のひとつであり、一部の最適化は抽象構文木の上の操作などによっておこなわれる。具象に対する構文がたとえばBNFによって規定されるように、

                                                                            • GitHub - papers-we-love/papers-we-love: Papers from the computer science community to read and discuss.

                                                                              You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                GitHub - papers-we-love/papers-we-love: Papers from the computer science community to read and discuss.
                                                                              • ベンチマーク - Wikipedia

                                                                                ベンチマーク(英: benchmark)とは、本来は測量において利用する水準点を示す語で、転じて金融、資産運用や株式投資における指標銘柄など、試金石として比較のために用いる指標を意味する。また、広く社会の物事のシステムのあり方や規範としての水準や基準などを意味する。またベンチマーキングとは自社の課題解決のために、競合他社などの優れた経営手法(ベストプラクティス)を持つ企業を分析するプロセスを指す。 建築物、構造物などの位置や高さなどの水準点または基準点に用いる。通常では動かない位置をベンチマークポイントに定めそれを基準として建物、構造物の位置を決める。ベンチマークには金属鋲などが打ち込まれることもある。また設計図書にどこがベンチマークポイントかは必ず明記される。元来ベンチマーク (benchmark) と言う場合は測量などで使用される基準の物を指す。 コンピュータの分野においては、コンピュ

                                                                                • タプル - Wikipedia

                                                                                  タプル(英: tuple、英語発音: [tʌp(ə)l, tuːp(ə)l]、タプル、トゥープル)とは、複数の構成要素からなる組を総称する一般概念であり、カタカナ語としては主に計算機科学において順序付けられた対象の並びを表すために用いられる。n 個でできた組を英語で「n-tuple」と書くことに由来し、数学では日本語に訳す場合、通常「n 組」とし、タプルの概念そのものも組と呼ばれる。なお、 n-tuple は数学のタプルを意味するほか、同様に double、triple などの拡張として倍数詞の表現にも利用される(詳細は「倍#西洋数学における n 倍を表す表現」を参照)。 集合論では n 組 (n-tuple) とは n 個の対象 a1, a2, ..., an の順序づけられた組であり、普通、括弧でくくって (a1, a2, a3, ..., an) のように書かれる。 タプルが順序づけ