並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 117件

新着順 人気順

チューリング完全の検索結果1 - 40 件 / 117件

  • Twitter で医師を拾ってきて Google のソフトウェアエンジニアにするだけの簡単なお仕事 - 白のカピバラの逆極限 S.144-3

    はじめに 「【転職エントリ】Googleに入社します|Lillian|note」という、医師から未経験で Google のソフトウェアエンジニアになった記事があります。 note.com 私は、この記事に出てくる「とある元 Google のソフトウェアエンジニア」で、面接の対策を立てました。 記事が出た当初から大反響で、私もそれなりの反応を見まして、いろいろと誤解されているなあ、と思う一方、アドバイザーはあくまでもアドバイザーだから、アドバイザーとして知りえた情報については、口をつぐむべきだと思っていました。 ただ、あまりにも誤解されており、悪影響が大きく、犠牲者も多くなってきたと思ったので、許可を得て簡単に背景を書いておこうかと思います。 これはあくまでもアドバイザー側からどう見えていたかを書いておくものですが、医学部卒だけでも3,4人 Google や Amazon に入っていったおぼ

      Twitter で医師を拾ってきて Google のソフトウェアエンジニアにするだけの簡単なお仕事 - 白のカピバラの逆極限 S.144-3
    • Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に

      Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に マイクロソフトCEOのサティア・ナデラ氏は、Excelの新機能である「Lambda関数」の登場をとりあげ、「世界で最も人気のあるプログラミング言語、Excelの数式が、チューリング完全になった」とツイートしました。 Excel formulas, the world’s most popular programming language, is now Turing-complete. Go check it out! https://t.co/qkw3Bmt1gp — Satya Nadella (@satyanadella) February 9, 2021 Lambda関数は、上記のツイートが示す図にあるように、E

        Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に
      • 現代の僕「コンピュータが生まれた歴史知りたい」 - Qiita

        TL;DR コンピュータの歴史も何も知らなかった私が、「ありがとう、先人たちよ」と言えるぐらいまでコンピュータの歴史を調べたので共有したいと思います。 最初の動機 「コンピュータってどうやって動いてるんだろう」 あなたは、この疑問に自信を持って答えられますか? そして、仮にコンピュータを知らない人類がいたとして、「コンピュータとは何か」を説明できますか? 私はできませんでした。 もちろん、コンピュータを使うことはできます。 こうして、キーボードをカタカタを打つと、見慣れた文字となってディスプレイに映すことが出来ます。 しかし、「使えること」と、「それが動く原理を説明すること」 は途方もなく大きな壁で隔てられています。 この記事では、コンピュータが動く原理を、その歴史をたどることで探っていきます。 コンピュータの歴史をまとめつつ、 「コンピュータってどうやって動くの?」 に答えられるようなも

          現代の僕「コンピュータが生まれた歴史知りたい」 - Qiita
        • ノーコードは形を変えた現代のRPGツクールなのではないか

          この記事について。 2030 年 「エンジニアです。コードは書けません。」|__shinji__| note 自分はそもそもビジュアルプログラミングやオーサリングに興味があり、ノーコードは興味の範疇でありつつも、現状のもの、現状の「コード抜きで作れる」ような謳い文句は厳しいと思っています。それを、RPG ツクールを例に説明します。 はじめに、ノーコードを分類する 本記事では、「専用の管理画面で編集し、出力のためにコードを書かない、もしくはコピペ程度」のものをノーコードとして扱います。 その中でさらに種類ごとに分類してみます。このような定義があるわけではなく、自分の主観的で暫定的な分類です。 タイプ 1: データベースから自動的にフォームを生成 Google App Sheet MS Power Apps タイプ 2: 高水準 API のパイプライン Zapier IFTTT 古の Yaho

            ノーコードは形を変えた現代のRPGツクールなのではないか
          • 30分で完全理解するTransformerの世界

            はじめに 初めまして。ZENKIGENデータサイエンスチームのはまなすです。正式な所属はDeNAデータ本部AI技術開発部なのですが[1]、業務委託という形で今年度から深層学習系の開発等に携わっています。 深層学習界隈では、2017年に衝撃的なタイトル(Attention Is All You Need)の論文が発表されてから早5年半、元出自の機械翻訳タスクを大きく越えて、Transformer関連の技術が様々な領域で用いられる汎用アーキテクチャとして目覚ましく発展し続けています。 今回はそんなTransformerが現時点までにどのように活用されてきたか、また、どのように工夫されてきたかをざっくりと俯瞰し、流れをおさらいする目的の記事になります。本記事の大枠は、2021年時点でのサーベイ論文である A Survey of Transformers に倣いつつ、適宜、2023年2月上旬現在ま

              30分で完全理解するTransformerの世界
            • なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記

              How do you imagine a building? You consciously create each aspect, puzzling over it in stages. Inception 型なし言語に馴染みはあるものの型付言語をいざ使ってみたらどういう気持ちで書いたらいいのかわからなかったと同僚から相談があり, それをきっかけにして社内の勉強会で以下の話をしました. よく型なし vs. 型付の文脈では「型を書くのは面倒だ」「安全の方が大事だ」「でも面倒だ」「それは型推論を前提にしていないからだ」などの議論になりがちな気がしますが、これはあくまで「計算ありきの型」を考えているからで, 「型ありきの計算」だと全く見え方が違います. 「型はある種の仕様」とおもえば, 型ファーストであることと, 型なし言語でテスト駆動開発(TDD)するときに最初にテストを書くこととは, 同じ

                なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
              • Excelの数式をベースにしたプログラミング言語「Microsoft Power Fx」登場。オープンソースで公開予定。Microsoft Ignite 2021

                Excelの数式をベースにしたプログラミング言語「Microsoft Power Fx」登場。オープンソースで公開予定。Microsoft Ignite 2021 マイクロソフトは、Excelの数式をベースとしたプログラミング言語「Microsoft Power Fx」(以下、Power Fx)を発表しました。 Introducing Microsoft Power Fx, a single computer language for logic customization across the #PowerPlatform. Learn how you’ll be able to go from an App Wizard to a Bot Builder in no time: https://t.co/V4NzYqn8kQ #MSIgnite pic.twitter.com/4iu4

                  Excelの数式をベースにしたプログラミング言語「Microsoft Power Fx」登場。オープンソースで公開予定。Microsoft Ignite 2021
                • プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena

                  Tiobe indexを眺めながら、C#とVBが入っていてMicrosoftは強いなーと思ったのだけど、よくみると他の言語もMicrosoftの影響力すごいのではとなったので調べてみた。 https://www.tiobe.com/tiobe-index/ Python 例えば1位のPythonにMicrosoftはかなり力をいれている。象徴的なのが、Pythonのオリジナル開発者の入社 C/C++ Windows上でのC/C++コンパイラではMS C/C++が圧倒的シェアであるし、C++の標準化団体にMicrosoftはGold Memberとして参加している。 https://isocpp.org/about Java 4位のJavaに関してもかなりリソースは割いているわけですが、全体の影響度としてそこまで大きくはないですね。 昨日のブログにも書いたようにOpenJDKビルドを出してい

                    プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena
                  • マイクロソフト、Excel関数ベースのローコード言語「Power Fx」をオープンソースで公開。さまざまなソフトウェアでの採用が可能に

                    マイクロソフト、Excel関数ベースのローコード言語「Power Fx」をオープンソースで公開。さまざまなソフトウェアでの採用が可能に Power Fxはマイクロソフトにとって初めてのローコード開発向けのプログラミング言語です。 Power AppsやPower Automate、Power BI、Power Virtual Agentsなどから構成される同社のローコード/ノーコード開発ツール製品群「Power Platform」のロジックの記述に用いられるプログラミング言語として、今年の3月に発表されました。 Introducing Microsoft Power Fx, a single computer language for logic customization across the #PowerPlatform. Learn how you’ll be able to go

                      マイクロソフト、Excel関数ベースのローコード言語「Power Fx」をオープンソースで公開。さまざまなソフトウェアでの採用が可能に
                    • 「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由

                      「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由 #17 動的型付け言語と大規模開発 テーマは「動的型付け言語と大規模開発」 まつもとゆきひろ氏:まつもとゆきひろです。Matzチャンネル17回目ということでお送りします。ちょっと前になりますが9月28日に私が技術顧問を始めたクラウドサーカスという会社さんがテックイベントを開催されて、その時のテーマが「動的型付け言語と大規模開発」というテーマでした。 その時に話したこととか、話そうとしたこと、話そうと思っていたんだけど時間の関係で話せなかったことなどを補足する意味も含めて今日はちょっと放送しようかと思います。というか、分量が多いので2回に分けて話そうかなと思っています。 このクラウドサーカスのイベントのテーマは別に私から指定したわけではなくて、先方が「こんなテーマで話したいんだ」とか「聞き

                        「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由
                      • CPUの珍命令 - Qiita

                        EDIT: はてなブックマークのエントリ だと ABCD (BCD加算) や DJNZ (ループ命令) が人気なようだ(Wikipediaしばりなもんで...) 。6502によくある JSR / RET が対応しないコーディングや、Z80で PUSH を目的外利用するような例は入れても良かったのかも。 DOOMの例を追加。 Wikipediaに個別ページができちゃうくらい有名な命令のメモ。 きっかけ このソースコードは現在の倫理上一般的でない表現が使われている箇所については当時の内容を尊重して掲載しています — ほうめい マイコンで遊んでばっかりで (@houmei) July 14, 2020 を受けて、 6809の命令のことですね。わかります >RT — Miura Hideki (@miura1729) July 14, 2020 1つのCPU命令が独立したWikipediaのページ

                          CPUの珍命令 - Qiita
                        • コードとビジュアルの双方向編集なエディタを試作して ビジュアルプログラミングについて考えてみた

                          ノーコードは形を変えた現代の RPG ツクールなのではないか - mizdev の記事では、ノーコードのビジュアルプログラミングが発展性を欠く理由として、次の理由を挙げました。 汎用的なビジュアルプログラミング基盤(Scratch みたいなものではなくプロユースなもの) ↑ 上でのビジュアル環境でのデータベースのグラフ構造のビジュアル化手法 ↑ 上でのビジュアル環境でのパイプラインのビジュアル化手法 ↑ 上での UI とデータと UI のマッピングのビジュアル化手法 これらを隠蔽してオートスケールするマネージレスなインフラ基盤(これはパイプライン実装の中身) で、こんなものを作った話 現代の Intellisense + Formatter 感覚 TypeScript の補完と、保存の度に prettier をバリバリに効かせた状態でプログラミングをしていると、そもそも自由文脈でコードを書

                            コードとビジュアルの双方向編集なエディタを試作して ビジュアルプログラミングについて考えてみた
                          • 【TypeScript と友達に】Type Challenges を全問解いたのでエッセンスと推し問題を紹介してみる - 前編

                            【TypeScript と友達に】Type Challenges を全問解いたのでエッセンスと推し問題を紹介してみる - 前編 はじめに 自己紹介 初めまして、@kakekakemiya と申します。 現在は東京大学大学院学際情報学府の修士 1 年で、フロントエンドエンジニアとして活動しています(25 卒の就活生です)。TypeScript × React × Next.js が主戦場ですが、Flutter でモバイルアプリを開発するときもあります。 今回は自分の TypeScript 力の向上のために、合計 170 問あるType Challenges を全問解いたので、Type Challenges における推し問題を紹介しながら、型パズルを解く上でのエッセンスを述べていく記事を書いてみようと思います。 Zenn での初投稿なので、何かと至らない点があるかもしれませんが、よろしくお願い

                              【TypeScript と友達に】Type Challenges を全問解いたのでエッセンスと推し問題を紹介してみる - 前編
                            • GitHub Actions はチューリング完全

                              チューリング完全とは、ざっくり説明すると、一部を除くほとんど全ての計算が可能な能力を意味します。言い換えると、ほとんど全ての計算問題を解く能力を意味します。(あとでもう少し詳しく説明します。)プログラミング言語は一般にチューリング完全であり、例えば TypeScript や Python はチューリング完全です。プログラミング言語以外にも、TypeScript の型システムやスーパーマリオメーカー、マジック・ザ・ギャザリングもまたチューリング完全であることが知られています[1][2][3]。直近では find と mkdir だけでチューリング完全になると報告されていましたね[4]。 逆にチューリング完全でない例としては正規表現[5]があります。チューリング完全ならば正規表現で解ける問題を全て解けますが、その逆は不可能です。例えば回文の判定は正規表現だと無理です。このように、数ある計算能力

                                GitHub Actions はチューリング完全
                              • プログラマとしてPower Automateでローコード開発した所感 | IIJ Engineers Blog

                                日本Haskellユーザーグループ(愛称 Haskell-jp)発起人の一人にして、Haskell-jpで一番のおしゃべり。 HaskellとWebAssemblyとプリキュアとポムポムプリンをこよなく愛する。 こんにちは。IIJ-IIの山本悠滋です。普段はIIJ-IIの技術開発室という部署で、IIJ本体をサポートするための開発をいろいろしています。 今回は、先月Microsoft Power Automateというサービスで開発したプログラムと、開発して学んだことを共有したいと思います。 Power Automateとは Microsoft Power Automate(旧「Microsoft Flow」)とは、一言で言うとIFTTTやZapierのMicrosoft版、といったところです。「○○のウェブサービスで××というイベントが発生したら、その時の情報を△△という別のウェブサービス

                                  プログラマとしてPower Automateでローコード開発した所感 | IIJ Engineers Blog
                                • 「これを組み合わせたらどうなるんですか?」→「わかりません!」──なぜ『クラフトピア』は開発者ですら把握しきれない破綻やバグを乗り越え、売上50万本を達成できたのか

                                  2020年9月4日にアーリーアクセスで配信開始されたゲーム『クラフトピア』。ジャンルこそ「オープンワールドサバイバルアクションゲーム」となっているが、クラフトゲームをベースとして狩り、農業、ハクスラ、建築、自動化などの多彩な要素を盛り込んだ欲張りなタイトルだ。 そんな『クラフトピア』では、TwitterやDiscordなどのSNSが積極的に活用されており、ユーザーが体験したスクリーンショットや動画の共有から、アップデートに対するリクエストからバグ報告までさまざまな交流が生まれている。 ここまでは普通のゲームでもよくあることだが、『クラフトピア』が特異なのは、開発者が想定していない仕様をユーザーがこぞって発見したり、ゲーム中に実装されていない機能がユーザーによって開発されていたりすることだ。 最近の野生のユーザーの方、クラフトピアを独自に解析し、バグを発見し、しかもバグの具体的な直し方まで教

                                    「これを組み合わせたらどうなるんですか?」→「わかりません!」──なぜ『クラフトピア』は開発者ですら把握しきれない破綻やバグを乗り越え、売上50万本を達成できたのか
                                  • 巨大なタスクに圧倒されそうな時は“分割統治”で征服せよ ゴールまで走り続けるために有効な考え方

                                    大きな問題も分割すればなんとかなる まつもとゆきひろ氏:次のことわざにいきましょうね。4番目は、これもことわざじゃないと言われちゃうんですが、「分割統治」という言葉です。英語だと「Divide and Conquer」。「分割して征服せよ」という感じです。大きな問題もね、分割すればなんとかなるというやつですね。 (スライドを示して)これは最近見た漫画です。巨大なタスクが存在して、圧倒されそうな気持ちになった時には、タスクを取り上げて細かく分解すると、細かく分解されたタスクは無視しやすいので、タスクは片づかなくても気分は楽になるという漫画なんですけども(笑)、実際、そういうところもあるんですよね。 非常に巨大なことをしろと言われると大変なんだけど、手に負える範囲に分割して1つ1つ話をしていくと問題を解決できるというのは、どこにおいても応用可能な原則だと思います。 クイックソートは一応現時点で

                                      巨大なタスクに圧倒されそうな時は“分割統治”で征服せよ ゴールまで走り続けるために有効な考え方
                                    • 出来ることは計算だけ?「WebAssembly」は一体なにが新しいのか〜エンジニアが語る技術愛 #03〜|ミクシル

                                      ミクシィには、探究心溢れるエンジニアがたくさん在籍しています。 その探究心は業務で扱う技術にとどまらず、趣味で書いているプログラムだったり、個人的に研究している言語だったりと、自身の気になった技術への追求も留まることを知りません。そこで、社内のエンジニアに“好きな技術”について、思う存分に語ってもらうシリーズを始めました。 ルールはこの通り。 ・業務で使っている技術でも、使われていない技術でもOK ・あくまでも個人的な見解で ・その技術のどこが面白いのか ・愛を込めて語り尽くしてもらう 第3回目は、新規プロダクトを目下開発しているSREグループの神谷に、「WebAssembly」の魅力をたっぷり語ってもらいました。 Webの技術でもないしアセンブリでもない? ━━早速ですが、今アツい技術について教えてください! 今回話すのは「WebAssembly(以下Wasm)」についてです。生まれた背

                                        出来ることは計算だけ?「WebAssembly」は一体なにが新しいのか〜エンジニアが語る技術愛 #03〜|ミクシル
                                      • 「Excel」にラムダ関数、ベータ版でテスト中 ~Excelの数式はチューリング完全な言語に/VBAやJavaScriptを知らなくてもユーザー定義関数を利用可能

                                          「Excel」にラムダ関数、ベータ版でテスト中 ~Excelの数式はチューリング完全な言語に/VBAやJavaScriptを知らなくてもユーザー定義関数を利用可能
                                        • 「アイデアだけでは意味がない、実装されて初めて意味がある」 世界最古のプログラミング言語から学ぶ教訓

                                          プログラミング言語「Ruby」の国内最大のビジネスカンファレンス「RubyWorld Conference」。Rubyの先進的な利用事例や最新の技術動向、開発者教育の状況などの情報を発信することで、「Rubyのエコシステム(生態系)」を知ることができる場として開催します。ここで登壇したのは、Rubyアソシエーション 理事長のまつもとゆきひろ氏。プログラミング言語の過去、歴史から学ぶ教訓について発表しました。全4回。1回目は、「アイデアだけでは十分ではない」について。 Ruby開発のきっかけ まつもとゆきひろ氏:じゃあ、始めます。Rubyを作り始めた記録が残っているんですが、その当時勤めていた会社の先輩にあたる人が、本を書くという話になったんですね。 その時に、彼は『プログラミング言語を作りながら学ぶオブジェクト指向』という本を書くと言ってきたんですね。編集の人と話をしていく中で「どういう企

                                            「アイデアだけでは意味がない、実装されて初めて意味がある」 世界最古のプログラミング言語から学ぶ教訓
                                          • 解説: Life Universe

                                            公開からだいぶ時間が経ってしまいましたが、Life Universe の技術解説を書きます。 English version is here. Life Universe について その前に、いくつか知っておくとよい事柄があるので先に説明します。 OTCA Metapixel について ライフゲームの説明については割愛します。ライフゲームはチューリング完全なので様々なパターンが存在し、その中に OTCA Metapixel というものが存在します。OTCA Metapixel は(メタ)セルのオンとオフの状態が視覚的に分かる特殊なパターンで、ライフゲームのみならず outer totalistic なルール[1]で動く全ての[2]2次元セルオートマトンを再現できます。 つまり、ライフゲームの中で動くライフゲームを見ることができます。 こちらは有名な動画ですが、実際にこういう計算が可能になり

                                              解説: Life Universe
                                            • シェルスクリプトの長所と短所のまとめ - Qiita

                                              はじめに シェルスクリプトに関しての長所と短所をまとめてみました。多くの短所を上げていますが、私はシェルスクリプトを嫌っているわけではなく(むしろ逆)、現在のシェルスクリプトが抱える問題点を明らかにし、シェルスクリプトはどう使うべきか? またはどう使うべきではないか? 問題点があるならばそれを解決することはできないか? を考えるためにまとめています。問題を解決するにはまず問題点を明らかにしなければいけません。 またシェルスクリプトを本来の用途に合わないものに使うと逆に開発が難しくなってしまいます。それは使い方が悪いわけでシェルスクリプトの問題ではありません。間違った使い方によってシェルスクリプトの価値が不当に下げられてしまうことを減らすために、あえて多くの短所をあげています。つまり最初からこんな用途に使おうと思うな。ということです。(使うことを禁止はしませんが、わかった上でやりましょう。実

                                                シェルスクリプトの長所と短所のまとめ - Qiita
                                              • UNIXを教える仕事をした - はてなの鴨澤

                                                知り合いに頼まれて、ちょっとUNIXの初歩を教える授業をした。 ちょっとといっても結構がっつりで、入ってきたばかりの、だいたいは家にパソコンがないという素人の学生に、2ヶ月間・23日・2コマずつで基本を教え、ちょっとしたツールをシェルスクリプトで作れるような、いわば普通のUNIX使いにしてくれ、という要望である。 一応の教科書は指定されたのだが、自分で買って読んでみたところ、あまり良くなかったので使わなかった。「これはリファレンスに使ってください」ということにした。 代わりに使ったのは、自分が真に優れていると思う本、Kernighan & Pikeの『UNIXプログラミング環境』である。1984年初版、対象はVersion7 UNIXと非常に古いので、内容は全部作り直しだ。全9章あるが、Cでツールを作り出す6章以降はいらないし(9章なんてtroffの詳細だぜ)、5章で作るツールはかなり古臭

                                                  UNIXを教える仕事をした - はてなの鴨澤
                                                • TeX言語でレイトレーシングを実装する話 - hak7a3が書き残す何か

                                                  この記事はTeX & LaTeX Advent Calendar 2019の14日目の記事です。 13日目はmattskalaさんでした。15日目はaminophenさんです。 TL; DR TeX言語を使って,こんな画像を生成する話. レイトレーシング結果 はじめに 周知のとおり,TeX言語はチューリング完全なプログラミング言語である.すなわち,世界にある任意のプログラムはTeX言語で記述可能である.あの文法と評価規則からは直観的ではないが,CGのレンダリングも科学技術計算もその気になればTeX言語で記述できる. 今回は,久しぶりのTeX芸人活動ということで,TeX言語でレイトレーシングしてみた. レイトレーシングとは レイトレーシングとは,画素ごとにカメラに入ってくる光線を逆方向に追跡してCGのレンダリングをする技法である.光線の追跡では,経路上の物体に対する反射・屈折を考慮する.本記

                                                    TeX言語でレイトレーシングを実装する話 - hak7a3が書き残す何か
                                                  • 【寄稿】独自言語のコンパイラをLLVM backendを用いて作る「ミニキャン言語を作ってみよう!」講義録 - Flatt Security Blog

                                                    はじめに 弊社Flatt Securityでは学生の学びを支援したいという想いから今回少額ではありますが高橋さんの留学を支援させていただき、そのご縁で弊社のYONEUCHI, Takashi (@lmt_swallow) | Twitterもスタッフを務めるセキュリティミニキャンプにおける素晴らしい講義の内容をテックブログに書いていただけることになりました。以下本文になります。 @00_ です。今年の夏のUC Berkeleyへの留学費用をFlatt Securityさんに支援して頂いた経緯で、セキュリティミニキャンプの講義内容についてテックブログで書くことになりました。 2019/09/28-2019/09/29 のセキュリティミニキャンプ山梨で「ミニキャン言語を作ってみよう!」の講座を行いました。この講座では、「ミニキャン言語(MC言語)」という独自言語のコンパイラを、自分がコミッタで

                                                      【寄稿】独自言語のコンパイラをLLVM backendを用いて作る「ミニキャン言語を作ってみよう!」講義録 - Flatt Security Blog
                                                    • 型付けは難しい

                                                      ベン・フィードラーのブログより。 型検査と型推論 型検査とは、あるプログラミング言語で与えられたプログラムを実行し、すべての変数や式が正しい型を持っているかどうかを調べるプロセスです。例えば、文字列は文字列に代入され、算術式は数値のみを使用するなどです。一部の言語では型推論を提供しており、コンパイラに自分で正しい型を見つけるタスクも提供します。言語の特徴に応じて、型検査と型推論の問題は、些細なものから決定不能なものまで様々です。 一般的な用語 完全性 正しく入力されたプログラムを全てチェックできれば、タイプチェッカーは完了です。 健全性 正しく型付けされたプログラムのみを受け付けるものであれば、型検査は健全です。 決定可能性 任意の入力に対して、その入力が問題を満足するかどうかを有限時間で計算できる場合、決定問題は決定可能です。決定可能な問題の例としては、素数判定や充足可能性などがあります

                                                      • find + mkdir はチューリング完全 - Qiita

                                                        FizzBuzz の構成 find は -regex オプションにより、それに対して後続のアクションを実行するファイル名をフィルタすることができます。これを使って x/ の 3,5,15の倍数回の繰り返しをフィルタすることができ、これをループと組み合わせることで FizzBuzz を実装できます。 以下では読みやすさのために -regextype posix-extended を使っていますが、どの正規表現文法でも同じことができるはずです。 mkdir -p d/x find d/x -regextype posix-extended -regex 'd(/x){0,29}' -execdir mkdir x/x \; find d -regextype posix-extended \ -regex 'd((/x){15})+' -printf "FizzBuzz\n" -o \ -re

                                                          find + mkdir はチューリング完全 - Qiita
                                                        • 自然言語処理の最先端Transformerを集合生成に応用する【逆転オセロニア】 | BLOG - DeNA Engineering

                                                          はじめまして。9月初旬より約半月にわたり、AIエンジニアコースのインターンに参加させていただいた清水と申します。大学院は情報系の専攻で、最近は幾何学的な深層学習に関する研究に取り組んでいます。その過程で言語的なタスクを出口に用いることも多く、副次的に深層学習を利用した自然言語処理にも多少明るかったりします。 題目にあるTransformerとは、そうした分野にてここ数年にわかに注目を集めている仕組みの名です。自然言語処理の最先端研究ではまず流用されないことなどない、いわば伝家の宝刀レベルのモデルといってよいでしょう。 本記事ではこれを『逆転オセロニア』というゲームのデッキ編成に特化させ、現行手法よりも表現力に富んだ編成システムを実現した経緯についてお話しできればと思います。『日進月歩で強力になっていく機械学習手法の恩恵に与りたいけれど、所望の問題設定にドンピシャな手法なんてそうそうなくて思

                                                            自然言語処理の最先端Transformerを集合生成に応用する【逆転オセロニア】 | BLOG - DeNA Engineering
                                                          • 関数の再帰的な定義に名前付けは必要か - 貳佰伍拾陸夜日記

                                                            結論から言うと, 名前を付けることなく再帰的な関数を定義することは可能. 特定のプログラミング言語でどうかというよりは抽象概念としての関数の再帰を名前なしに実現可能かどうかという話(名前なしに実現できるプログラミング言語は存在するかという話). 発端 id:naoyaさんがこういうツイートをしていた. 再帰を書くときに何気なく関数に名前つけたり let で束縛したりしてたけど「再帰には三項関係が必要でありその実現には記号が本質的に関わる」とあり、名前づけの行為が必然だったことが分かった。プログラミングするときの視点が変わるな— naoya (@naoya_ito) 2022年8月12日 たとえば以下のように書いたときのlet fact =みたいな話. let fact = n => n <= 1 ? 1 : n * fact(n-1) ちなみに, 話は一見逸れるけど, こう書けると必然的に

                                                              関数の再帰的な定義に名前付けは必要か - 貳佰伍拾陸夜日記
                                                            • 0からScalaを本番導入して感じたこと・考えたこと - k.dev

                                                              はじめに 弊社ではScalaを本番環境に導入して大体1年になる。 導入以前に社内的にScalaに関する知識はゼロだった。 Scalaという言語は巷では色々言われているが愛好者とそれ以外の壁が非常に大きな言語のように思える。 ここはコミュニティの努力によって埋められようとしているが、他の言語に比べてまだまだなのが現状である。 弊社でのScala導入経験に関する情報がその壁を取り払う一助になることを祈る。 導入経緯 Railsの運用コスト もともとはプロダクトのバックエンドはRailsで書いていた。 Railsは非常に高速にプロダクトを開発できるのだが、長期的に見るとその高速性よりも運用困難性、堅牢性の欠如が目立つようになってきた。 MVCアーキテクチャは複雑なプロダクトを構成するのにはシンプルすぎた。 特にRailsの中核をなすアクティブレコードモデルのせいで問題の分割が難しかった。 じゃあ

                                                                0からScalaを本番導入して感じたこと・考えたこと - k.dev
                                                              • TypeScriptの型メモ - Qiita

                                                                他言語の型システムに馴染みがある人向けのTypeScriptの型システムについてのメモです。個々の用語については『型システム入門』や適当な論文を参照してください。また、個々の型機能の詳細については TypeScript Documentation を参照してください。 合わせて読みたい: TypeScript: Handbook - TypeScript for Functional Programmers 部分型多相(subtype polymorphism)があります。 名前的部分型付け(nominal subtyping)ではなく、構造的部分型付け(structual subtyping)を採用しています1。クラス定義では一見、名前的部分型関係が導入されそうに見えますが型検査は構造的に行なわれます。 パラメータ多相(parametric polymorphism。または総称型(gen

                                                                  TypeScriptの型メモ - Qiita
                                                                • ゼロ単位・2年留年から始まる大学数学 元・京大生への取材から生まれた“数学科あるある”コメディー漫画「数字であそぼ。」作者インタビュー

                                                                  (C)絹田村子/小学館 「一度見たものは決して忘れない」ほどの超人的な記憶力を持ちながら、微分積分がさっぱり分からず留年する主人公、パチスロにハマって単位が取れない友人、問題を考え過ぎてパンツ一丁で路上を歩く教授……。 こんなキャラクターたちが登場する「数字であそぼ。」(月刊flowers/小学館)は、大学数学の世界を描いたコメディー漫画。一見ぶっ飛んだ話にも見えますが、実は元・京大生への取材をベースに制作された作品で、ネット上ではリアルだと共感する声も現れています。 「学問というカタいテーマだけどコメディーで、コメディーなのにリアル」という同作は、どのような経緯で誕生したのか。最新第3巻の発売(12月10日刊行)に合わせて、作者である絹田村子先生(@murak0)にインタビューしました。 本記事は前後編の全2本となっています 前編:ゼロ単位・2年留年から始まる大学数学(この記事) 後編:

                                                                    ゼロ単位・2年留年から始まる大学数学 元・京大生への取材から生まれた“数学科あるある”コメディー漫画「数字であそぼ。」作者インタビュー
                                                                  • TypeScript で型レベル Brainfuck - Object.create(null)

                                                                    2024-04-15 追記: 内容をアップデートした記事を書きました. susisu.hatenablog.com TypeScript の型システムはチューリング完全ということが知られていますが, 同じくチューリング完全な言語である Brainfuck のインタプリタを実装することで, その計算能力を確認することができます. この記事のコードは TypeScript 3.8.3 で動作確認しています. ゴール 型レベルで Brainfuck のインタプリタを実装します. type Program = [ ",", ">", ",", "<", "[", ">", "[", ">", "+", ">", "+", "<", "<", "-", "]", ">", "[", "<", "+", ">", "-", "]", "<", "<", "-", "]", ">", ">", ">",

                                                                      TypeScript で型レベル Brainfuck - Object.create(null)
                                                                    • 2020年機械学習総まとめ 興味深い論文/記事85選|akiraTOSEI

                                                                      この記事では、2020年に発表された論文や記事のうち、特に興味深かったものを合計85紹介します。下記12のトピックに分けて紹介していますが、あくまで便宜上の分類です。私の個人的な2020年総括は以下の通りです。 ---------------------   個人的2020年総まとめと所感  --------------------- 2020年はTransformerが大躍進しました。自然言語処理では大規模なTransformerモデルであるGPT-3が高い精度を多くのタスクで叩き出しています。大量のデータと大量のパラメータを使って画像分類でも最高精度であったBig Transferを超えるものが出てきています。 差別的要素や著作権の問題のないフラクタル画像データセットはAIの倫理がさらに重視されるであろう今後は、非常に重要なものになってくるかもしれません。ImageNetにアクセスでき

                                                                        2020年機械学習総まとめ 興味深い論文/記事85選|akiraTOSEI
                                                                      • 「永久機関がムリなのはエネルギー保存則が成り立たないから」はちょっとおかしいから、実際に作って考えてみた

                                                                        皆さん、永久機関は好きでしょうか? 私は大好きです。 永久機関とは、文字通り、永久に動き続ける装置です。それも、ただ動き続けるだけではありません。そこから何らかのエネルギーを取り出せるような装置です。もう少し正確に言うと、「外部からエネルギーを一切供給することなく、永遠に動き続け、しかもそこから外部にエネルギーを取り出せる装置」のことを(第一種)永久機関と呼びます。 これは夢のような装置です。なぜなら、一度その装置を作って動かしてしまえば、そこから無限のエネルギーを取り出せるからです。石油も原子力も必要ありません。世界中のエネルギー問題が一発で解決します。 当然、太古から多くの人々がその制作に挑んできました。例えばこんなものが有名です。 ロバート・フラッドの循環式ひき臼(引用元:トヨタ産業技術記念館) 「ロバート・フラッドの循環式ひき臼」では上部の樋に水がたまっており、落下する際に水車が回

                                                                          「永久機関がムリなのはエネルギー保存則が成り立たないから」はちょっとおかしいから、実際に作って考えてみた
                                                                        • Brainfuck 実装で学ぶ TypeScript 型レベルプログラミング - Object.create(null)

                                                                          およそ 4 年前に「TypeScript で型レベル Brainfuck」という記事を書きました. susisu.hatenablog.com それから 4 年間の間に TypeScript も進化し, 型レベルプログラミングの技法にも大きな変化がありました. 特に顕著な影響があったものでは, TypeScript 4.0 のタプル型の改善 TypeScript 4.1 のテンプレートリテラル型や条件型での再帰 TypeScript 4.5 の条件型での末尾再帰の除去と, 再帰の上限の緩和 などがあります. こういった変化も踏まえた上で, いまから TypeScript の型レベルプログラミングに入門する人に向けて改めてまとめ直したものがこの記事です. 内容は記事執筆時点の最新版である TypeScript 5.4.5 で動作を確認しています. ぜひ Playground などを使って,

                                                                            Brainfuck 実装で学ぶ TypeScript 型レベルプログラミング - Object.create(null)
                                                                          • コンパイル時計算でラムダ計算の構文解析器・評価器・型推論器を実現 (Scala 3編) - 貳佰伍拾陸夜日記

                                                                            またか. またなのか. 何回目だ. ということで, ラムダ計算のインタプリタの実装としては4回目くらい*1, コンパイル時計算でやるものとしても3回目くらいになってしまうけど, ラムダ計算の処理系をまた書いてしまった. 今回の目的は, Scala 3にはmatch typesという機能があり, これだけでチューリング完全なのではないか, というのを検証するため. また, 文字列リテラル型を操作する型レベル関数が3.1.2-RC1にきていて, これを使えば構文解析器だって書ける. 経緯 過去の事例 関数と返り値 パターンマッチと再帰呼出し Scala 3の型レベル言語 match types リテラル型操作 ラムダ計算の実装 評価 印字 構文解析 型推論 (型検査) おわりに 経緯 もともとは, id:xuweiさんが文字列リテラル型でコンパイル時に動作する構文解析器を実装していたのが始まり

                                                                              コンパイル時計算でラムダ計算の構文解析器・評価器・型推論器を実現 (Scala 3編) - 貳佰伍拾陸夜日記
                                                                            • CEL(Common Expression Language)を使ってIAMポリシーを検索する iam-policy-finder - KAYAC Engineers' Blog

                                                                              SREチームの藤原です。 今回は CEL(Common Expression Language) を使って、AWSのIAMポリシーを検索するツールを作ったので紹介します。 github.com 3行でまとめ CEL (Common Expression Language)の式を指定してAWS IAMポリシーを検索するツールをOSSとして作りました。GetAccountAuthorizationDetails APIで取得したIAMポリシーをCELで評価して、マッチするものを出力します 例えば「lambda:GetFunctionがあるがlambda:ListTagsがないポリシーを探す」などができます AWSからたびたびやってくる、IAMポリシーに関するお知らせに対応するのに便利です 突然の「Action Required」 ある日、AWSからこんなメールが届きました。 Lambda Ge

                                                                                CEL(Common Expression Language)を使ってIAMポリシーを検索する iam-policy-finder - KAYAC Engineers' Blog
                                                                              • セミコロンレスJava はチューリング完全か? - プログラマーの脳みそ

                                                                                セミコロンレスJava (Semicolonless Java)というのは Java でセミコロンを使わずにコードを書くというチャレンジである。ネタであり言語の構文を駆使して行うプログラミングパズルの類の遊びである。(ときどき本気にしてその有用性について聞いてくる人がいるので、この冗談がどういう冗談でどう面白いのかの解説のような無粋なことを書いている) ところで、セミコロンを使わずともJavaはチューリング完全なのであろうか? 証明方法 チューリング完全であるという証明は、すでにチューリング完全であることが知られている体系を該当環境で実装することで行うのが簡単な方法論である。 Brainf*ck といったチューリング完全な簡易プログラミング言語を実装するとか、チューリング完全であることが知られているライフゲームを実装するとかが考えられる。 今回は、ライフゲームの1次元版とも言える、1次元セ

                                                                                  セミコロンレスJava はチューリング完全か? - プログラマーの脳みそ
                                                                                • カリー化と部分適用

                                                                                  カリー化と部分適用 先日同僚にカリー化を説明する機会がありました。その際に、簡潔に説明に適した自分用の資料があるといいなと思いましたので、こちらの記事を書くことにしました。 この記事ではカリー化と部分適用について解説します。歴史等には触れずにただその内容について述べます。 混同しやすいという情報があるのですが、割と違うレイヤの話なのでなぜなのかは不明ですが、関連性に関する私見も末尾に書いておきます。 カリー化 カリー化 (Currying)[1]とは 複数の引数を取る関数を、単一の引数を取る関数に翻訳する手法 のことです。 簡単な例を見ます。以下のような2つの引数を持つ関数を考えます。 const add = (a: number, b: number) => a + b; console.log(add(1, 3)); // 4 関数を値のように返す関数のことを高階関数と呼びます。 カリ

                                                                                    カリー化と部分適用