タグ

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

タグの絞り込みを解除

programmingに関するuokadaのブックマーク (256)

  • Pkl :: Pkl Docs

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>name</key> <string>Swallow</string> <key>job</key> <dict> <key>title</key> <string>Sr. Nest Maker</string> <key>company</key> <string>Nests R Us</string> <key>yearsOfExperience</key> <integer>2</integer> </dict> </dict> </pl

  • 文法を学んだ次に知りたいのは、ゼロから巨大なコードを書き上げる方法ではなく、"既存のコードの改修を適切にやれる方法"なんじゃないか - Magnolia Tech

    プログラミングの入門書、「ゼロからコードを書いていく」ことは教えてくれるけど、「今あるコードをどうやって壊さず機能を追加してくれるか?」というのは教えてくれないんだよな ゼロからコードを書いている時間より、既存のコードを読んで影響を確認し、改修している時間の方が圧倒的に長いのに— magnoliak🍧 (@magnolia_k_) 2022年3月19日 プログラミング言語の文法や、ツールチェーンの使い方を一通り覚えた後、実際にプロダクションコードを書く場面で最初にアサインされることって、”プロダクションレベルのアプリケーションのコードをゼロから一気にリリースクオリティまで書き上げる”ことではなく、”既存のコードに対する小さな改修”だったりしませんか。 そんな時、『入門 機能追加』があればいいのに、と思ってしまう。 『入門 機能追加』の執筆が待たれる ・設計意図を残すドキュメント・コードの

  • 第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る | gihyo.jp

    この章では、関数型の至宝であるコンビネータライブラリについて説明します。 コンビネータとは何か? この章でいうコンビネータとは、ある型の部品と部品を組み合わせて、同じ型のより大きな部品を作るための関数のことです。たとえば、パーサのコンビネータライブラリは、パーサを組み合わせるための各種コンビネータを提供しており、簡単にパーサを作成できます。コンビネータライブラリは、言語内DSL(Domain Specific Language)と表現してもよいでしょう。 関数型では、パーサに加えて、データを文字列でわかりやすく表示するプリティプリンタ、SQL、XML、ハードウェア記述、そしてデリバティブ(金融商品)記述、楽譜記述など多様なコンビネータライブラリが作られ、実際に使われています。この章では、パーサのコンビネータライブラリを取り上げます。 CSVのパーサ たとえ簡潔でも、実用的でないパーサの例だ

    第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る | gihyo.jp
  • a21_txt01 - essen-wiki

  • パッケージマネージャを自作するときに考えること - gfnweb

    プログラミング言語を自前で創っていると,パッケージマネージャが欲しくなってくるものだ.既存パッケージマネージャやそのラッパーによる配布で事足りることも多いが,自前言語の要件とうまく合わなかったりして,真に自分で実装せねばならないこともある.そうした場合,パッケージマネージャをどんな設計にすべきだろうか? 言語固有の都合には触れずになるべく一般に考慮すべき事項を洗い出し,簡単な設計例も提示してみたい. なお,稿はパッケージマネージャの設計に焦点を当てたものであり,効率的に依存制約を解消するアルゴリズムなど実装の詳細については解説しない.実際例えばOCamlでは 0install-solver というOPAMの裏でも使われているパッケージを利用すれば制約解消アルゴリズムそのものに踏み込まずとも制約解消処理を実装でき,(それ自体に興味があるときを除けば)必ずしもアルゴリズムを理解する必要はない

  • ローカルキャッシュにCaffeineでも - CLOVER🍀

    この記事は、「Java Advent Calendar 2016 - Qiita」の4日目の記事となります。 昨日は、@susumuisさんの「Javaが僕にくれたもの | susumuis Info」でした。 明日は、@fukushiwさんのご担当となります。 ローカルキャッシュ、今ならなにを使うでしょう? Javaのキャッシュライブラリといえば、なにを使うでしょうか?OSSものを中心に考えると、次の2つあたりが浮かぶのではないかなぁと思います。 Ehcache ※2系が強いのかな? Google Guava なお、今回は分散キャッシュは考えないことにします。あくまで、ローカルキャッシュを対象に。 Ehcacheについては、すでにAPIが刷新された3系がリリースされており、現時点で3.1が利用できます。…あんまり名前を聞きませんけれど。 ここで、対象として挙げたいのが、今回紹介するCaf

    ローカルキャッシュにCaffeineでも - CLOVER🍀
  • レガシーおじさん、SPAを始めてみた。そして限界を知る

    はじめに 最近、Webの記事を見てるとReactVue.jsばかりが上がっていてJSPやERBの話をしてる人は誰もいません。jQueryの記事ももちろん見ない。 つまり、Webだけ見る限りではほとんどの人がSPAを使ってるように見えます。 私はWeb界隈には居るもののどちらかというとバックエンド寄り、もっというとそもそもWebとか関係ない領域を見る事が多いので、ちょっとキャッチアップを兼ねていくつかの個人プロダクトにVue.jsを採用してみました。 jQueryくらいで頭が止まってたので。サーバサイドもマイクロサービスでAPI化が進んでるのでフロントもそれに合った技術を選ばないとですしね。 というわけで、今回はその中で得た知見というか、従来型のサーバサイドでのWeb開発をしていた人の視点でVue.jsをキャッチアップする流れで書いていきたいと思います。 まあ最終的な結論は正直「これすごく

    レガシーおじさん、SPAを始めてみた。そして限界を知る
  • 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

  • とほほのLISP入門 - とほほのWWW入門

    1958年に MIT の John McCarthy によって設計されました。 FORTRAN(1954年)や COBOL(1959年)と肩を並べる、歴史の長いプログラミング言語です。 命名は「list processor」に由来していて、リストを主要に扱っています。 文と式の区別が無く、IF文などもすべて式として扱います。 演算子と関数の区別もなく、例えば 3 + 5 の加算は + 関数を用いて (+ 3 5) のの様に表します。 Common List, Scheme, Emacs Lisp などいくつかの方言があります。 Emacs という UNIX 上のテキストエディタのカスタマイズ言語としても利用されていました。 Common Lisp は ANSI INCITS 226-1994 として定義されており、現在の主流となっています。 Common Lisp にも SBCL(Stee

  • Lisp入門 - WisdomSoft

    Lisp入門 この講座は Common Lisp(ANSI X3.226-1994) に準拠しています。 Common Lispとは? 関数と式 数値データ 文字データ 変数 リスト リストの評価 値の比較 if特別式 progn特別式 condとcase tagbodyとgo ブロック 繰り返し処理 関数の定義 戻る

  • Command-Line Rust

    Read it now on the O’Reilly learning platform with a 10-day free trial. O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers. For several consecutive years, Rust has been voted "most loved programming language" in Stack Overflow's annual developer survey. This open source systems programming language is now u

    Command-Line Rust
  • 無限スクロールは考慮することが多い

    毎年無限スクロールの実装をしているのだが正直なところ実装したくないので依頼されたときの反論材料として実装したくない理由を言語化しておこうと思う。 無限スクロールとは 無限スクロールが何を指すかを知らない人のために解説すると、ページにコンテンツを足す方式でページネーションする UI を指している。例えば Twitter のように下にどんどんコンテンツが伸びていく UI が良い例だろう。そのような UI を無限スクロールと呼ぶことが正式なのかは知らないが、このような体験の実現を支援するライブラリに infinite-scroll というものがあり、少しは普及している呼び方なのだと思い無限スクロールという言葉を使う。一方で WEB フロントエンド文脈で無限スクロールと言うと複雑 GUI やドローイングツール実装における "無限平面" のようなニュアンスもあるが、今は無限平面のことを指しているわけ

    無限スクロールは考慮することが多い
  • よわよわエンジニアがTAPL(型システム入門)を読んだら

    こんにちは,sititou70です.私は社会人2年目のよわよわWebフロントエンドエンジニアであり,「数学」とか「証明」とは無縁の人生を送っています. そんな私ですが,がんばって型システム入門(通称:TAPL)というを読み終えました.全32章,503ページ,牛乳パック1分の重さがあり, 自立します. 自立するは大抵やばいです. TAPLの序文を見ると,想定読者は プログラミング言語と型理論を専門とする大学院生および研究者 プログラミング言語の鍵となる概念に触れたい,計算機科学の全分野の大学院生および習熟度の高い学部生1 となっています.記事では 「そんなを,学生や専門家でない人間(私)が読んだらどうなるのか」 について書きます.専門的な用語は避けますので,TAPLの雰囲気だけでも感じ取ってもらえたら嬉しいです. どうなったのか 宇宙語が読めるようになった 「型安全」を説明できるよ

    よわよわエンジニアがTAPL(型システム入門)を読んだら
  • シェルスクリプトを書くのをやめる - blog.8-p.info

    今年から、できるだけシェルスクリプトを書くのをやめようとしている。私が毎日 zsh に打ち込んでいるのも広義のシェルスクリプトだし、自分用の雑なスクリプトを書くことはあるけれど、チームの他の人も将来に使ったり改変したりするようなものは、なるだけ他の言語を使っている。 シェルスクリプトを書くのは難しいし、その難しさは、学ぶに値しないといったら言い過ぎかもしれないけれど、2021年に初心者が取り組むべき問題とは言い難いと思う。 シェルは悪いプログラミング言語である Bash Strict Mode とかを使ってみても、シェルスクリプトには落とし穴が多すぎる。自分で書いたものを自分で使っている分には大丈夫なのだけど、スクリプトがチーム内で使われるようになると、考慮していなかったところ、例えばファイル名に空白文字が含まれるとか、そういうレベルの微妙なところで、ちゃんと書かれていないスクリプトは壊れ

  • コンパイル技法: パターンマッチ

    書では関数型言語をはじめとして多くの言語にあるパターンマッチをコンパイルする方法を紹介します。パターンマッチはシンプルに条件分岐の連鎖にコンパイルすることもできますが、よく研究された手法を使えば驚くほど効率的なコードを生成できるようになります。そのような手法を2種類紹介します。 パターンマッチはデータ型に照合しそのデータを取り出すものです。例えばRustであれば match opt { Some(x) => f(x), None => g()} のように Option 型への照合などに使えます。書の前半ではパターンマッチの挙動や使い方などを学びます。挙動の確認にはプログラミング言語Standard MLを使い、一部Cのコードも使います。その後Common LispやJavaなどの他の言語でのパターンマッチの状況を確認します。後半ではパターンマッチのコンパイル技法について紹介します。パタ

    コンパイル技法: パターンマッチ
  • a21_txt01 - essen-wiki

    (註)「.exeの大きさ」はWindows向けにgcc(MinGW)でコンパイルした時の大きさです。 しかしここで扱う言語処理系は、Windows専用というわけではなく、他のOSでも問題なく動作するようになっています。 純粋に言語処理系の規模の目安を示すために書いてあります。 基的には小さければ小さいほどシンプルで、教材として理解しやすいと思っています(可読性を下げてまでのコンパクト化をやらないとして)。 行数を書いているのも同じ意図です。行数だけだと、1行の文字数をうんと増やすことで、見かけ上の行数を減らすことができますが、そんなことをしても実行ファイルサイズは減らないので、 この二つを併記すれば、規模感の目安としては十分だと思っています。 「速度のめやす」は、C言語で10億回ループさせた場合と、この言語で10億回ループさせた場合の処理時間の比を書いています。数が大きいほうが遅いです。

  • The Missing Semester of Your CS Education

    The Missing Semester of Your CS Education Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. We’ll teach you how to master the command-line, use a powerful text editor, use fancy features of version control

  • 「Java」を“偉大な言語”にした3つの画期的要素

    関連キーワード Java | Sun Microsystems(サン・マイクロシステムズ) 「Java Platform, Enterprise Edition」(Java EE)は、プログラミング言語および開発・実行環境「Java」の業務アプリケーション向け仕様群だ。IT業界の進化に伴い、Java EEは業務アプリケーション開発の進歩に大きな役割を果たしてきた。 Javaを偉大な言語にした“あの要素”

    「Java」を“偉大な言語”にした3つの画期的要素
  • Programming in Scala, Fifth Edition

    If you purchase the eBook, you will be entitled to receive periodic updates as errata are fixed, for no additional charge. If you purchase a paper book, it will be shipped as soon as it comes into stock (which should take place the week of ). If you purchase the combo, the paper book will be shipped when it is published, estimated publication date is . About the book The fifth edition of Programmi

  • IoPLMaterials

    学習の仕方 計算機科学コースの学生には講義中に別途やり方を指示します.(実験3SWもやるので.) この講義資料の GitHub のページからリポジトリを clone しましょう. OCaml が使えるように環境を設定しましょう. 落ちてきたソースコード中の textbook/interpreter/ ディレクトリの中にインタプリタのソースコードが入っているので,duneコマンドでビルドしましょう. 教科書を読みながらもりもり演習問題を解きましょう. 教科書にバグを見つけたら issue で報告しましょう. 講義の履修者は講義用 Slack で質問してもよいですね. プログラミング言語強者になりましょう.そのためには... なにか自分で言語を作って処理系を作ってみましょう.作った処理系を自慢しましょう.世界中で自作の言語が使われるようになったらいいですね. もしくは,プログラミング言語理論や