プログラミング言語のコンパイラで用いられる構文解析の手法を図解で解説。 演算子順位法・LR法・再帰下降構文解析・Backtrack parsing・Packrat parsing・左再帰を許すPackrat parsingを扱っています。 非常に長いですがパラパラ漫画的な感覚で読んでみてください。Read less
![ビジュアル構文解析](https://cdn-ak-scissors.b.st-hatena.com/image/square/981a4b23c9c11ceef804057397eb5d3dc814cc9a/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fparsing-120203043833-phpapp02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
プログラミング言語のコンパイラで用いられる構文解析の手法を図解で解説。 演算子順位法・LR法・再帰下降構文解析・Backtrack parsing・Packrat parsing・左再帰を許すPackrat parsingを扱っています。 非常に長いですがパラパラ漫画的な感覚で読んでみてください。Read less
APIとAPIを組み合わせてマッシュアップサービスを作ろうと思った場合、まず自分が欲しいデータを提供しているAPIを探す必要があります。今回はそんなAPIのディレクトリを提供しているサービスをまとめて紹介します。 PublicAPIs 執筆時点で5,330のAPIから検索ができるAPIインデックスサービスになっています。名前やAPI名などを入れることで、新しいAPIの登録申請もできるようになっています。 PublicAPIs | Directory of public APIs for web and mobile API For That 検索、ソーシャル、ファイナンスなど約20のカテゴリに分かれて登録されています。約300種類くらいのAPIが登録されています。 API For That | An API Directory Zapier IFTTTのビジネス版と言った雰囲気のサービスに
私はアメリカの大学で「インタラクティブメディアとゲーム開発」を専攻しましたが、その時受けたSoftware Engineeringという授業が色んな意味で素晴らしかったのでその授業がどう素晴らしかったのかを紹介していきます。 リアリティーがすごい まずこの授業、生徒数が80人ほどいます。ここから教授がみんなを約15人ずつの5つの会社に分けていきます。そうです、我々生徒は実は会社員なのです。 そして初日に出された課題は「自分たちの会社のミッションステートメントを考えてくること」です。 それだけでなく、プロジェクトマネージャー・プロセスエンジニア・リリースエンジニア・ドキュメンテーションマネージャー・クオリティーマネージャーの役割を会社のどの社員が取るのかを決めてこないといけないというのです。私たちは言われるがままにミッションステートメントを用意し、次の授業に備えました。 プロセスがすごい S
2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一本化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod
初版作成:2003/01/11 2015年時点での参考資料追記:2015/06/29 目次 前書き 本題 後書き或いは感想 2015年時点での参考・推薦資料 前書き 2015年時点での、より正確で分かりやすい参考書籍の紹介を追記しましたので、そちらもぜひご確認ください。 LinuxやUNIXを扱っていると「共有ライブラリ(shared library)」「ライブラリ(library)」という言葉をしばしば耳に します。特に、最新版を使おうとソースコードから見よう見まねでビルド、コンパイルとやらをおそるおそる行っては見たものの 見事に失敗したときや、或いは上手く動かないときのログファイル中で現れることもあります。 プログラマーであれば、例え初めてLinuxに触ったとしても何となく語感だけでぼんやりと原因が想像できます。 しかしごく普通の ---つまりプログラミングなどに興味関心も無かった--
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
Pythonの有名なWebスクレイピングフレームワークのScrapyがバージョン1.0になりました。*1 0.24からの主要な変更点は下記のとおりです。 SpiderでItemの代わりにdictを返せるようになった Spiderごとにsettingsを設定できるようになった Twistedのloggingの代わりにPythonのloggingを使うようになった CrawlerのコアAPIがリファクタリングされた いくつかのモジュール配置場所が変更された 他にも数多くの変更点がリリースノートに記載されています。 Scrapy 1.0の感想 大きな機能の追加よりも、APIの整理と安定性の向上がメインのようです。これまではバージョンを重ねるごとに便利になっていくものの、あまりAPIが安定していない印象でしたが、APIを安定させた区切りのリリースと言えるでしょう。1.0というメジャーバージョンに到
データ分析から導き出されたインサイト無しにAI(人工知能)の活用は始まりません。私たちは、各業界知識とデータ・アナリティクス技術を駆使しデータドリブン経営を強力に支援します。 データ、アナリティクス、AIは企業にとって競合他社との差別化を図るかつてないほど大きな要因になっています。今日の経営幹部が効率を向上しながら新たな収益源を開拓し、新しいビジネスモデルをタイムリーに構築する方法を模索する中、価値を生み出し成長を続ける企業には「データ活用」という共通項があります。私たちは、無数のデータから企業にとって本当に必要なデータを活用するための方法を知っています。 将来を見据えたオペレーション体制を備えている企業の半数以上(52%)は、すでにデータとアナリティクスを大規模に活用しています。データとAIに関する取り組みをビジネス戦略に沿って実施することで投資利益率を迅速に最大化し、最終的にはAIをビ
私はC++歴3年の学生趣味プログラマーです。 「C++はなぜヘッダと実装を分けなくてはならないのか/そもそも本当に分けなければならないのか」という質問です。 C++といえば、ヘッダー部と実装部を.hファイルと.cppファイルに分けることが一般的とされている言語ですが、 これは同じオブジェクト指向言語のC#やJavaにはない特徴です。 そのせいでC++使いたちは今日もcppファイルとhファイルを行ったり来たりしながらコーディングする羽目になっています。(そしてVS使いはF12とCtrl+-を得意気に連打しています。) 私にとってもそれが当たり前になって久しいですが、 時々C++を学び始めたばかりの後輩から「なぜヘッダファイルに実装を書いてはならないのか」「なぜC++は二度も同じコードを書くことを強いるのか」と質問を受けます。 私はそのたびに「実装の隠蔽化」とか「循環参照の危険が云々」とか「そ
B! 251 0 0 0 GitHubで面白そうなシェルスクリプトを探してる時に見つけた Spark by holman について。 数値を棒グラフ上に表示してくれるスクリプトです。 Spark 使用例 Spark Spark は数値群を引数に与えるか標準入力で与えてあげると その数値群を棒グラフに変換してくれるシェルスクリプトです。 インストールはGitHubのレポジトリ から直接sparkというスクリプトファイルを取ってきてPATHの通った所に入れるか、 MacであればHomebrewで $ brew install spark でsparkコマンドが使えるようになります。 使い方は非常にシンプルで $ spark 0 20 40 60 80 100 ▁▂▃▅▆█ こんな感じで数値を与えるとそれを棒グラフにしてくれます。 インプットに使える数字は少数も使えますが、 実際に使われる際には
01. vimスクリプトでHello World — 作者: 小見 拓 — 最終変更 2012年01月09日 03時35分 02. vimスクリプトの基本 — 作者: 小見 拓 — 最終変更 2012年01月09日 04時08分 03. 変数 — 作者: 小見 拓 — 最終変更 2012年01月09日 04時08分 04. 変数の操作 — 作者: 小見 拓 — 最終変更 2012年01月09日 04時08分 05. 値の比較 — 作者: 小見 拓 — 最終変更 2012年01月09日 04時08分 06. 制御構造 — 作者: 小見 拓 — 最終変更 2012年01月09日 04時08分 07. エラー処理 — 作者: 小見 拓 — 最終変更 2012年01月09日 04時08分 08. 処理の呼出 — 作者: 小見 拓 — 最終変更 2012年01月09日 04時08分 09. 文字列操
多くの言語は冗長性を有していますが、これらの機能を省いていくことも言語設計の進歩につながります。 巷には数多くのプログラミング言語があり、新しい言語も継続的に紹介されています。でも新しいものが古いものより優れているかというと、そうとは言えません。なぜなら、何が“優れているか”を判断する明確な尺度は存在しないからです。 それでも過去からの流れを見ていくと、優れた言語を作る1つの方向性は、言語にある冗長性を特定し、それらを持たない新たな言語をデザインすることにあるように思えます。 「完璧とは、それ以上足せない時ではなく、それ以上引けない時に達成される」 – Antoine de Saint Exupéry この投稿では、現在までに知られている言語の冗長的機能を見ていくと共に、恐らく冗長性を有しているだろうと思われる機能についても触れていきます。 自ら墓穴を掘るあらゆる可能性 初めてコンピュータ
はじめに 先日、私たちが開発しているクラウド型WAFサービス、Scutum(スキュータム)において、予想していなかった箇所の修正によってサーバの負荷が大幅に減るということがありました。原因はこのエントリのタイトルにもあるように、Stringクラスのインスタンスを生成する際の方法にありました。 Stringクラスのコンストラクタとcharset Stringクラスにはいくつかのコンストラクタが用意されています。我々が使っていたのはString(byte[] bytes, String charsetName)です。2つめの引数で、"MS932"や"UTF-8"のような文字集合(以下charset)を明示的に指定するものです。 ScutumのようなWAF(Web Application Firewall)は通常のウェブアプリケーションとは異なり、起動している間にさまざまなcharsetを扱うこ
はじめに 僕がプログラミングを始めてから、もうすぐ12年になろうとしています。 この12年間、いろんな技術書を読んだり、仕事やプライベートでたくさんコードを書いたりしてきました。 最初に入ったSIerでは主にJavaを、前職の社内SE時代はC#をメインのプログラミング言語として使ってきました。 現在はRubyをメインで使っていますが、言語が変わっても、また何年経っても「これはあのとき学んだ知識が役に立ってるよなあ」と思う瞬間がときどきあります。 そこで今回はこれまでに読んだ技術書を一通り振り返り、「この本で学んだことは今でも役に立ってる」と思うものを17冊ピックアップしていきます。 おことわり (2014.09.29 20:00追記) このエントリのタイトルは「10年経った今でも役に立っている」という意味で付けています。「今から10年後まで役立つ」という意味ではありません。(紛らわしくてご
works デザイナーのわたしがプログラミングの基礎をだいたい3日で覚えた1つの方法 Posted by Miki Ishijima on May 20, 2014. フルスタックエンジニア!フルスタックエンジニア! 最近なんでもかんでも出来る人が求められていますね。Webデザイナーの人でも簡単なプログラムに触れる機会は以前より格段に増えています。 わたしもプログラムを覚えたいと思い、勉強していました。しかしそれは、禁煙と同じようなもので触ってはやめて、触ってはやめて、飽きてしまうの繰り返しでした。 身につかない原因 プログラムの勉強会や、本、ブログなどを読んでもなぜ身につかないのか。難しいというのは理由ではありません。 むしろ、基礎の「き」くらいであればコーディングと同じくらい簡単です。 わたしが一番の原因だと考えるのは作りたいものがないというコトです。 子供向けプログラム学習アプリケー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く