タグ

関連タグで絞り込む (348)

タグの絞り込みを解除

Programmingに関するzaki1010のブックマーク (783)

  • 操車場アルゴリズムで四則計算の数式をパース - Qiita

    以前に簡単な四則計算を再帰下降構文解析でしてみた1ものの、もっと単純で面白い感じのアルゴリズムがあった気がしていた。調べたら「操車場アルゴリズム」(shunting-yard algorithm)と思い出したので、これをRubyで実装してみる。 概要 詳しい説明や図解はWikipedia参照。 中置記法で書かれたよく見る数式を、後置記法(逆ポーランド記法)に変換できる。記号列を入力から出力へ送る際にスタックを用いて並べ替える様子を、列車を並べ替える様子で説明したため、操車場アルゴリズムと呼ばれる。 コード 以前と同様に「1桁の整数・加算・乗算・括弧のみの数式を解釈して計算結果を返す」パーサを作ってみる。各文字がそのままトークンになるので、字句解析を省いて簡略化する2。 エラー処理は不完全なので、前提に合わない数式(例えば2桁の数字)を入力してもエラーにならず変な結果を返すことがある。 cl

    操車場アルゴリズムで四則計算の数式をパース - Qiita
  • 操車場アルゴリズム - Wikipedia

    中置記法からRPNへの変換は、数式を簡単に単純化するのにも使える。そのためにはRPNの式を評価するようにし、値がヌルの変数が出てきたり、値がヌルの演算子が出てきたら、そのパラメータと共に出力に書き込めばよい(これは単純化であり、パラメータが別の演算子だった場合には問題が生じる)。ヌルのパラメータがない演算子の場合は、単にその値を出力に書き込めばよい。この技法は明らかにあらゆる単純化を含んでいるわけではない。それは定数畳み込みの最適化に近い。 C言語での実装例[編集] #include <string.h> #include <stdio.h> #include <stdbool.h> // 演算子 // 優先順位 : 演算子 : 結合性 // 4 :  !  : 右結合性 // 3 : * / % : 左結合性 // 2 : + -  : 左結合性 // 1 : =  : 右結合性 int

    操車場アルゴリズム - Wikipedia
  • pythonで数式の構文解析をしてみた - Qiita

    ふと数式の簡単な構文解析くらいできないとダメだよなと思ってやってみたんですが、意外と苦戦してしまったので忘れないように書いてみました。今回は再帰降下法と操車場アルゴリズムの2つを試してみます。 実装対象 今回は+, -, *, /, () をサポートしたものを作ろうと思います。例えば myeval("1+2") では 3 が返ってきてくれるとうれしいです。 再帰降下法 再帰降下法は再帰的な構造を利用して構文解析を行う手法です。考え方を以下で説明していきます。 考え方 素朴な考え方 今回使用するBNF (Backus-Naur form)を考えます(知らなくても大丈夫です)。 数式はこのBFNを用いて以下のように書くことができます。 expr := <term> | <expr> + <term> | <expr> - <term> term := <factor> | <term> * <

    pythonで数式の構文解析をしてみた - Qiita
  • http://web.tuat.ac.jp/~tuatmcc/contents/monthly/200206/nuki.xml

  • 株式会社リクルート エンジニアコース新人研修の内容を公開します!(2021年度版) | Recruit Tech Blog

    こんにちは! Webフロントエンドエンジニアの眞野 隼輔です。 毎年大きな反響を頂いている、エンジニアコースの新人研修の内容を紹介させていただきます。 研修の概要 リクルートでは、エンジニアコースでスペシャリスト採用された新卒のエンジニアを対象に、現場で培われた「当に必要な生きた知識・技術」を取り入れた新人研修を開催しています。 前半は研修では各分野に長けた社員による講義形式の技術研修を行い、後半は仮配属という形でそれぞれ別の部署に配属されて実際の業務を経験するOJTとなっています。 この技術研修はそのほとんどが内製されており、ベテラン社員による経験を元にした講義を通して生きた知識・技術を獲得できます。また、実際に手を動かす演習型の講義ではベテラン社員からのレビューやフィードバックを得られるため、知識の定着や更なる成長へと繋がります。 年度の技術研修も、昨年度に引き続きフルリモートでの

    株式会社リクルート エンジニアコース新人研修の内容を公開します!(2021年度版) | Recruit Tech Blog
  • 公式ドキュメントの読み方

    「公式ドキュメントを読め」というのが急に話題になっていたので自分なりに整理してみました。 注意: そんなに真面目に推敲していません。フィーリングで書いているので実態に即してない部分もあるかも…… 公式ドキュメントとは何か あなたが使おうとしている道具 (ライブラリ、フレームワーク、プログラミング言語、ミドルウェア、コマンドラインツール、etc.)[1] は必ず誰かによって作られています。ある程度成熟した道具であれば通常、その作った人・組織自身によって公開されているドキュメントがあるはずです。これが公式ドキュメントです。 公式ドキュメントは、OSSにおいてはソースコードと双璧をなす最も信頼できる資料のひとつです。ソースコードが非公開の場合は通常、公式ドキュメントが最も信頼できる資料でしょう。 (以降はOSSを主に想定して説明します) たとえば…… Python のソースコードはGitHub

    公式ドキュメントの読み方
  • Rustハンズオン@エウレカ社

    エウレカ社にてRustのハンズオンを実施しました。 コード全体は下記で確認できます。 https://github.com/yuk1ty/rust-basic-handson

    Rustハンズオン@エウレカ社
  • 技術ようつべチャンネル集 - Qiita

    役立つYouTubeのチャンネルまとめ 数学、物理、アルゴリズム、プログラミング、などなど自分が使う技術に役立ちそうだな、困ったときによく見たなと思うチャンネルを紹介する。 取っ掛かり、ハマりがち、コツみたいな物が拾える。数学がメイン。随時更新していくつもり。 当たり前だけどちゃんとも読んで勉強するんだぞ。 背景 YouTubeは視聴する登録チャンネルの数が増えると、チャンネルが埋もれて発掘困難になりがち (chrome拡張でできるチャンネルのフォルダ分け機能は、ぽちぽち登録するのも面倒で、そのフォルダの中から掘り出すのも難しい) モチベが上がる(おべんつよしたい)チャンネルを探してるうちに湧いてくる、わんにゃんコンテンツ(だいちゅき)に流され一日が終わるため、 モチベが上がる有用なチャンネルにすぐにたどり着くために、よく使うQiitaに列挙しておくことにした Streamや大学専用サイ

    技術ようつべチャンネル集 - Qiita
  • 中学・高校数学で学ぶ、数学×Pythonプログラミングの第一歩

    中学・高校数学で学ぶ、数学×Pythonプログラミングの第一歩:数学×Pythonプログラミング入門 「Pythonの文法は分かったけど、自分では数学や数式をプログラミングコードに起こせない」という人に向けて、中学や高校で学んだ数学を題材に「数学的な考え方×Pythonプログラミング」を習得するための新連載がスタート。連載コンセプトから、前提知識、目標、格的に始めるための準備までを説明する。 連載目次 この連載では、中学や高校で学んだ数学を題材にして、Pythonによるプログラミングを学びます。といっても、数学の教科書に載っている定理や公式だけに限らず、興味深い数式の例やAI機械学習の基となる例を取り上げながら、数学的な考え方を背景としてプログラミングを学ぶお話にしていこうと思います。 今回は、それに先だって、プログラミングを学ぶ上で数学を使うことのメリットや、Pythonでどのよう

    中学・高校数学で学ぶ、数学×Pythonプログラミングの第一歩
  • 算数で挫折した人向けのJavaScript入門

    全くプログラムを知らないが、プラグインなどでJavaScriptを使いたい人向けの入門ページです。 序盤 第一回: はじめてのJavaScriptプログラム 第二回: 文字の表示とコメント 第三回: 変数で名前をつけよう 中盤 第四回: ifで分岐しよう 第4.5回: 質問に答えよう! 第五回: 配列で並べよう 第六回: 辞書って何? 100ノック ちょっと練習量が足りないなぁ、という事で、ひたすら練習する回を作りました。新しい話は出てきません。 第6.1回: 配列100ノック! 第6.2回: 辞書100ノック! 第6.3回: 辞書と配列混合、100ノック! 終盤 第七回: 関数その1 関数を作る事、呼び出す事 第八回: 関数その2 関数からもらうもの 第九回: 関数その3 関数に渡すもの 第十回: 辞書に関数を入れる 第十一回: 同じ事のいろいろな書き方 おまけ おまけ第一回:

  • GitHubにAIプログラミング機能「Copilot」登場 関数名とコメントから中身を丸ごと自動補完

    GitHubは6月29日(現地時間)、関数名とコメントから、関数のコードを丸ごと自動補完するAIプログラミング機能「GitHub Copilot」(コパイロット、副操縦士の意)を発表した。専用ページから登録すると、テクニカルプレビュー版の招待を順次受けられる。 米Microsoftのコードエディター「Visual Studio Code」と、Visual Studio Codeベースのクラウド開発環境「GitHub Codespaces」向けの拡張機能として提供する。 例えば、コメントとして「// Get average runtime of successful runs in seconds」(成功した実行の平均実行時間を秒の形式で取得する)と書いておき、その下に「func averageRuntimeInSeconds」と関数を書き始めると、Copilotがその先を自動補完。必要な

    GitHubにAIプログラミング機能「Copilot」登場 関数名とコメントから中身を丸ごと自動補完
  • テストコードを書き始める前に考えるべきテストの話(2021年版) #scrumosaka / scrum_fest_osaka_2021

    以下のイベントの投影資料です。 https://confengine.com/conferences/scrum-fest-osaka-2021/proposal/15337 お問い合わせは https://twitter.com/nihonbuson まで。 【発表資料中のURL】 P12 ISTQBテスト技術者資格制度 Foundation Level シラバス 日語版 Version 2011.J02 http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018V31.J03.pdf#page=15 ※2011年版は現在リンク切れのため、最新版のシラバスのURLを掲載しています P17 概説テスト分析 http://www.slideshare.net/takashiyamasaki378/ss-55384920 P29 システム/

    テストコードを書き始める前に考えるべきテストの話(2021年版) #scrumosaka / scrum_fest_osaka_2021
  • Pythonプログラミング入門 — Pythonプログラミング入門 documentation

    Pythonプログラミング入門¶ ▲で始まる項目は授業では扱いません。興味にしたがって学習してください。 ノートブック全体に▲が付いているものもありますので注意してください。

  • 「スタートアップだからテストを書かない」は正しいか - An Epicurean

    スタートアップのCTOクラスの人がたまにそういうことを言っているのを聞くことがあります。もしくは「スピード優先だからテストを書かない」等です。 それは真ではなく、言ってしまえば、未熟だからテストを書「け」ない、のではないでしょうか。ただ、スタートアップという言葉に未熟であるという意味が含まれているのであれば「スタートアップだからテストを書かない」という問は真になるかも知れません。スタートアップは得てして未熟なものだし、それでも良いからです。 テストを書かないというジャッジをするのは構いません。でもそれは、スタートアップだからでもスピード優先だからでもない。自分達が未熟だからで、そこには向き合うべきだと考えます。状況のせいにするのではなく、徹底的に自分ごと化する。それがスタートアップに求められる姿勢です。少なくとも技術のトップが自分たちの技術力に向き合わないのはまずいでしょう。 「スタートア

    「スタートアップだからテストを書かない」は正しいか - An Epicurean
  • プログラマの抱いている名前についての誤謬

    パトリック・ミッケンジー(Patrick McKenzie)さんのブログ・エントリ、 “Falsehoods Programmers Believe About Names” の日語訳です。翻訳の公開を快諾してくださったミッケンジーさんに感謝します。 公開: 2012-02-22 Posted on June 17, 2010 by Patrick きょう、ジョン・グレアム゠カミング(John Graham-Cumming)が、正しくない文字が含まれているといって彼のラスト・ネームを受け付けないコンピュータ・システムへの不満の記事を書いていた。もちろん彼の名前に「正しくない」ところなどない。当人の申し出たものが当人を識別するものとしては相応しいのであって、定義からして名前とはそういうものである。このことにジョンは当然ながらいらだったし、そうなるのもきわめて正当なことだ。定義からすれば事実

    zaki1010
    zaki1010 2021/05/19
    名前で何かしようと思ったらダメってことか。なるべく自由に入力できるひとつの長いテキストフィールドが適切?
  • CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。

    お知らせ: 2022/9/1 CS50 を活用した非営利/協賛企業による「コロナ学生支援」プロジェクトを実施中 ▼ 学生の方へ:CS50 の学習(履修証明書の取得)を一緒に取り組むプロジェクト CS50日語版の翻訳コントリビューターである CODEGYM が主催する、非営利/無償のプロジェクト「CODEGYM Academy (外部リンク)」は、昨年に続き2022年度(春/秋)も、キャリア選択を控えた学生に対し、以下の企業の協賛により無償で17週間のプログラミング教育カリキュラムを提供します。 CODEGYM Academy 協賛企業(2022年) https://codegym.jp/academy/ 今年度のエントリーは締め切りました — ようこそ! このページは、ハーバード大学 CS50 の日語版翻訳プロジェクトのページです。当サイトのドメインに掲載されているコンテンツは、Cre

  • なぜ自動テストの導入は失敗するのか? - プログラマーの脳みそ

    開発室の雑談。営業側のマネージャが言うには 「今のプロジェクトで自動テストの導入を試みている話をしたら、XXXさんのところでも過去にいくつか導入を試みたけどもみんな上手くいかなかったって話になって」 なるほど? まあ確かに自動テストはシステム開発にとって魅惑の技法ではあるものの、では導入がうまくいっているか? というと普及率は低いと言わざるを得ない。私がお手伝いしたプロジェクトでは、元請け側から自動テストをやるお達しが来たわけだが、紆余曲折あって掛け声倒れのような状態になってしまった。 ビジネス書の煽りタイトルのような件だが、古式ゆかしき受注生産の業務システム開発プロジェクトに自動テストを導入しようとして失敗する事例を聞いたので、僕なりに分析して見出した要素を挙げておこうと思う。 V字モデル ソフトウェア開発の手法としてV字モデルというものがある。 オーダーメイドでシステムを作るにあたっ

    なぜ自動テストの導入は失敗するのか? - プログラマーの脳みそ
  • もう無駄にfor文書くのやめようや...。 - Qiita

    はじめに Java8以降で何も考えずに「for文を用いた繰り返し処理」を使うのはやめましょう。 書き手、読み手にとっても良くないし、特別な理由がなければ積極的に新しい技術を使うべきです。 良くない理由としては様々ありますが、主な理由としては以下の点が挙げられます。 処理の内容をパッと見て把握しづらい 不具合のトリガーになる ソースコードの肥大化 では具体的な例を次に示します。 具体例1 NGパターン List<String> nameList = Arrays.asList("Taro", "Jiro", "Saburo", "Shiro", "Goro"); for (int i = 0; i < nameList.size(); i++) { System.out.println(nameList.get(i)); }

    もう無駄にfor文書くのやめようや...。 - Qiita
  • 良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer

    CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopers Blogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して

    良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer
  • どうして Julia を作ったか

    プログラミング言語「Julia」開発者さんの文章がとても好きなので、雰囲気重視で訳しました。結構意訳です。原典:https://julialang.org/blog/2012/02/why-we-created-julia/ =================================================「どうして Julia を作ったか」 それは、僕らが欲張りだからだ。 Matlab はめっちゃ使う。僕らの中にはLispの天才もいるし、PythonRuby のすげー奴、Perl を巧みに使いこなす奴もいる。毛も生えない子供の頃からMathematica で遊んだ奴もいる。いまだにツルツルな奴だって仲間だ。Rではアホみたいにたくさんグラフを書いた。C言語からは、いつだって冒険の匂いがする。 ぜんぶ、大好きだ。面白いし、いろいろなことができる。何かをしたいと思った時--科