タグ

プログラムに関するauthorNariのブックマーク (29)

  • FFI - Foreign Function Interface のしくみまとめ - higepon blog

    FFI とは何か? ある言語から他の言語で作られたライブラリを呼び出すしくみの事。 ここでは Scheme から C の関数を呼び出す方法をとり上げる。例えば Scheme から libxml の関数を呼ぶなど。 しくみ 上から順に処理が流れる。 ライブラリのロード 呼び出そうとする C 関数を含む共有ライブラリをロードする。ロードに必要な情報は共有ライブラリの名前である。この名前はユーザーが指示する。 dlopen, LoadLibrary などでロードが行われる。この作業は初期化時に一回行うだけでよい。 型情報の提供 呼び出そうとしている関数の引数や戻り値の型を処理系(VM)に提供する。例えば引数は int, char* 、戻り値は void など。 これらの情報はユーザーが手入力したり、FFIの仕組みがヘッダをパースしたり(c-wrapper)することで提供される。 また引数の個数も

    FFI - Foreign Function Interface のしくみまとめ - higepon blog
  • リフレクション (情報工学) - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "リフレクション" 情報工学 – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2023年1月) 情報工学においてリフレクション (reflection) とは、プログラムの実行過程でプログラム自身の構造を読み取ったり書き換えたりする技術のことを指す。 概要[編集] 日語では自己言及と呼ばれる。通常リフレクションというと動的(実行時)リフレクションのことを指すが、静的(コンパイル時)リフレクションをサポートするプログラミング言語もある。リフレクションはSmalltalk、Java、.NET Frameworkのような仮想機械やインタプリタ上で

  • まつもと直伝 プログラミングのオキテ 第14回 意外に深い整数の世界

    整数はコンピュータにとって最も基となるデータの一つでしょう。今回はその基的なデータの背後にあるコンピュータの秘密について考えてみます。最後に,応用問題として公開鍵暗号方式についても触れます。 0,1,2,3,…と続く整数は小学生のころから慣れ親しんだ数です。しかし,学校で学ぶ算数や数学に登場する整数とコンピュータが取り扱う整数には,少しだけ性質に違いがあります。整数を学ぶにあたって,まずこの違いから考えてみることにします。 最初の違いはコンピュータの中の数は2進法で表現された2進数だということです。コンピュータを使っていて,この違いが目立つことはほとんどありませんが,ここはきちんと押さえておく必要があります。 私たちが普段使っているのは10進法です。10進法は0から9までの10種類の数字によって表現されます。しかし,10進法が唯一の位取り法というわけではありません。例えば時間の表現は6

    まつもと直伝 プログラミングのオキテ 第14回 意外に深い整数の世界
  • まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro

    プログラムの高速化はプログラマにとって永遠の課題です。しかし,そこには知られざる暗黒面が隠れています。そもそも高速化に意味があるのかを調べなければなりません。次に,どの部分をどの程度高速化するのかが重要です。アルゴリズムの効率にも目配りが必要です。 コンピュータの処理速度は驚くべき勢いで向上しています。現在私たちが使っているパソコンは一昔前のスーパーコンピュータをしのぐ性能を備えていますし,半世紀前に登場したばかりの計算機と比較すると数十万倍の性能に相当します。 このように高速なコンピュータを持っているにもかかわらず,人間の欲望は限りがないものです。プログラムの実行速度はプログラマにとっての永遠の課題のようです。プログラムを高速化していると,「そんなに急いでどこに行く」という気になることもあります。 今回は,プログラムの高速化にまつわるさまざまな「秘密」と「限界」,そして「戦略」について解

    まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro
  • prototype.jsを読み解く:第1回 Prototypeライブラリ(1〜197行目)|gihyo.jp

    他のライブラリや、自分のコードと共存させるときは、これらの名前と衝突しないように気をつける必要があります。同じ名前を使ってしまうと、コードがロードされた順番によって挙動が変わる、というようなわかりにくい問題が発生してしまう場合が出てきます。 オブジェクト、クラスの使われ方 ライブラリ内では、上記の名前空間は大きく分けて以下のような使われ形をしています。 その下に別のオブジェクトを入れるための親名前空間として使う Class.create()を使って Prototypeライブラリ風のクラスとして定義する Object.extend()を使って他のクラス、オブジェクトから継承されることを前提とする関数を集める コードを簡潔に記述する為に短い名前の関数として使う 特に、Object.extend()を使って継承を実現している箇所が多く、最終的にどのオブジェクト・クラスにどのメソッドが定義されてい

    prototype.jsを読み解く:第1回 Prototypeライブラリ(1〜197行目)|gihyo.jp
  • 頭の中にプログラムを入れる

    Paul Graham / 青木靖 訳 2007年8月 いいプログラマは、自分のコードに集中しているとき、それを頭の中に保持しておくことができる。数学者が取り組んでいる問題を頭の中に入れているのといっしょだ。数学者は学校で子供たちが習っているように、紙の上で問題の解いているわけではない。彼らは多くの部分を頭の中でやっているのだ。問題の領域をよく把握しようと努めることで、普通の人が記憶にある育った家の中を歩き回れるように、数学者は頭の中で問題空間を歩き回ることができる。最高の状態で行われるプログラミングもそうだ。プログラムの全体を頭の中に入れたなら、それを思い通りに操れるようになる。 これはプロジェクトのはじめにおいては特に価値がある。それはプログラムを作り始めるときに最も重要なことが、やっていることを変えられるということだからだ。単に問題の解き方を変えるという ことではなく、解いている問題

  • 生年月日から年齢を計算する簡単な計算式:ITpro

    私の個人ブログに掲載したら好評でしたので、こちらでもご紹介してみます。 最近知ったんですが、生年月日から年齢を計算する簡単な計算式というのがあるそうです。 (今日の日付-誕生日)/10000の小数点以下切捨て。 PHPで書くと echo (int)((20070823 - 19850101)/10000); Perlで書くと print int ((20070823 - 19850101)/10000); JAVAで書くと System.out.println( (int)((20070823 - 19850101)/10000) ); という感じになります。 日の法律を確認してみました。誕生日の前日が終了する瞬間(すなわち誕生日をむかえる午前0時00分の直前)に1歳を加えることになる。ただしうるう年など、年によって期間を定めた場合において最後の月に応当する日がないときは、その月の末日を

    生年月日から年齢を計算する簡単な計算式:ITpro
  • ウノウラボ Unoh Labs: プログラミングに使いやすいフォントを選ぶ

    yukiです。 人によってまちまちですが、見易さや生産性にかなり影響する(と思っている)プログラミング時のフォントについて紹介します。 マカーの方はデフォルトで十分読みやすいフォントが入っているので、ここではwindows向けとして紹介させて頂きます。 個人的に選ぶポイントは、 ゼロ・オーは斜線で区別がつく 日語も使える 長時間見ても疲れない(一番大事) です。これいいよ!というのがあったら絶賛募集中です。 有名どころかもしれませんが M+フォント M+フォント posted by (C)フォト蔵 普段はコレを使わせていただいています。 自分的にはゼロ(0)とオー(O)の差が分かりやすく◎です。 ゼロの中にスラッシュやドットが入っていて読みやすく、等幅なので使いやすいです。 VLゴシックフォントファミリ 上記のM+を元に製作されたフォントです。 弊社CTOが過去に参加

  • codeなにがし

    世界最高峰のブックメーカーでベットしましょう。オンラインベッティングでお気に入りのスポーツをお楽しみください。

  • MYCOM BOOKS - Short Coding 〜職人達の技法〜

    ■内容紹介 ショートコーダー(Short Coder)とは、プログラムのソースコードを極限まで短縮する技術を持ったプログラマのことである。「ソースコードの短縮」は、一見無意味に感じられるかもしれない。しかし最短コードを達成するには、省メモリ・高速プログラム・処理系の知識に加えて、並外れた集中力と熱いショートコーディング魂が必要なのである。 書は主にC言語を用いて、データ構造・アルゴリズム・処理系に関する研究を行いながら積み上げられたコード短縮技術を、様々なテーマについての思考実験と共に紹介するものである。

  • http://cssnite.jp/theday/days2007/slides0725.html

  • ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き - - emacsでリアルタイムに構文チェックを行う方法(flymake)

    emacs でリアルタイムに構文チェックする方法です.flymakeを使います.仕組みとしては コーディング中に C-x C-s を押すと,バックグラウンドで make が走る make がエラーを出した場合は,該当するコードをハイライト表示する だけです.恐ろしく便利です. 参考 開発元 http://flymake.sourceforge.net/ すでに他の方のブログでも取り上げられています. flymake でリアルタイム文法チェック - とりあえず暇だったし何となくはじめたブログ Flymake を使って編集中にシンタックスエラーを検出する — ありえるえりあ インストール emacs22以降であればflymakeはデフォルトでインストール済です. 設定 flymakeは,構文チェックの処理を外部プログラムに丸投げしています.たとえば構文チェッカとして make を使う場合は,以

    ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き - - emacsでリアルタイムに構文チェックを行う方法(flymake)
  • JavaScript勉強会のまとめ | Blog hamashun.com

    2007-07-12資料公開をした人の章にリンク追加 2007-07-12 sendさんの章に追記 超長いんでショートカットメニュー作りました。 あと、JavaScriptの素人が書いてます。 あちこち間違ってたらごめんなさい。 マークアッパー・デザイナー向けJavaScript入門 マークアップエンジニアHTMLコーダー向け、Yahoo UI Library活用術 Google Gears入門 JSの使いどころ liveプレゼン 猿でもわかる GreaseMonkey Firebugの話 総括 Twitter関連でお世話になっているukstudioが、初心者向けJavaScript勉強会を主催してくれたので、モリモリ勉強してきました! 会場は株式会社ノッキングオン様に提供して頂きました。 ありがとうございます! 僕は行ってなかったんですけど、モバイル勉強会の時もお世話になったそうです。

  • クラブ・ラボ

    このサイトは、 KLab株式会社が公開しているオープンソースソフトウェアや実験サービスについて紹介するはずだけど ただいま引越中です。

  • データ圧縮法概説 目次

    最終更新日:2001年7月2日 第1章へ webmaster@snap-tck.com Copyleft (C) 2000 SNAP(Sugimoto Norio Art Production)

  • プログラマを目指す人が読んで参考になる(?)ページ

    プログラマを目指している人が、読んで参考になりそうな(?)ページを集めてみました。 現役のプログラマが読むとになる危険性もありますので、ご注意下さい。 ( ;^ω^)<へいわぼけ: SEは終電と徹夜を繰り返すくらい毎日忙しいってホント? アルファルファモザイクより「ゲームプログラマーのあなた、給料いくら?」 なんたらかんたら: プログラマーの極限状熊

    プログラマを目指す人が読んで参考になる(?)ページ
  • プログラミングの6大10項目リスト

    Jeff Atwood / 青木靖 訳 2007年3月22日 以下に私の選ぶプログラミングの6大10項目リストを挙げておく。取り上げた順序には特に意味はない。このエントリを簡潔なものにしておきたいので、それぞれの項目は短い要約を引用するに留める。興味を引くものがあれば、ぜひリンクをたどってオリジナルの作者の考えについてもっと詳しく読むことをお勧めする。 [ 訳注: 要約だけで意味が取りにくいものに簡単な説明をつけた。] ジェラルド・ワインバーグの「エゴレスプログラミングの十戒」 自分が誤りを犯すということを理解し、受け入れること 。 自分と自分のコードは別物である。 どんなに「空手」を学ぼうと、いつでもあなたよりもっと詳しい人間がいる。 相談せずにコードの書き直 しをしない。 自分より無知な人に対しても尊敬と敬意と忍耐を持って接すること。 世界で唯一変わらないのは変わるということだけ。 唯

  • スペル修正プログラムはどう書くか

    Peter Norvig / 青木靖 訳 先週、2人の友人(ディーンとビル)がそれぞれ別個にGoogleが極めて早く正確にスペル修正できるのには驚くばかりだと私に言った。たとえば speling のような語でGoogleを検索すると、0.1秒くらいで答えが返ってきて、もしかして: spelling じゃないかと言ってくる(YahooMicrosoftのものにも同様の機能がある)。ディーンとビルが高い実績を持ったエンジニアであり数学者であることを思えば、スペル修正のような統計的言語処理についてもっと知っていて良さそうなものなのにと私は驚いた。しかし彼らは知らなかった。よく考えてみれば、 別に彼らが知っているべき理由はないのだった。 間違っていたのは彼らの知識ではなく、私の仮定の方だ。 このことについてちゃんとした説明を書いておけば、彼らばかりでなく多くの人に有益かもしれない。Google

  • http://user.ecc.u-tokyo.ac.jp/~t50473/onlispjhtml/

  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直