「プログラミング言語理論」という研究分野がある。この分野の研究者たちは,「ML」「Haskell」「Scheme」あるいは「λ計算」「π計算」(円周率計算のことではない)など,多くのプログラマにとっては聞いたこともない言語やモデルについて,日夜研究している。そのような言語は,C,C++,Java,Perl,Rubyなど,今の世の中で広く使われている言語とは見た目や考え方が違いすぎて,「難しい」「役に立たない」などと思われがちだった。 ところが,その状況が最近になって微妙に変化している。 HaskellやLispなど「関数型言語」についての記事が,専門の学会誌ではなく,一般の技術誌に掲載された(日経ソフトウエア2006年6月号「Haskellによる関数型プログラミング入門」など)様々なフリーソフトウエアがML,Haskell,Schemeなどで開発されたプログラミング言語の研究者ではなく,普
Javaにはsynchronizedという便利なキーワードがあります。このキーワードを使うと、例えば次のように簡単にメソッドを「同期化」することができます。同期化されたメソッドは、複数のスレッドで同時に実行されることがありません。 public class Foo { ... public synchronized boolean getFoo() { ... } さて、C++ (with pthread) で同様の機能を実現するにはどうしたらよいでしょう?まず、一番単純な方法は次のようなものです。 // 方法 a void Foo::need_to_sync(void) { static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_lock(&mutex); // 処理 pthread_mutex_un
人力検索に Plagger で Mixi to Gmail をやっていて、最近 Gmail でスレッド化されなくて困っているという質問があったので、回答かいてたら質問がキャンセルされたのでシニタス。 → 匿名ではてぶポイントもらっちゃいました。Thanks. ポイントもらえなくてシニタスになったのではなくて、書いた回答をどこに振り下ろせばいいのかという悲しい気分が原因だったのですが、Gmail の何かが変わったことが結果的に分かったのでそっちもOK. 結論 2006/07 以前 同一 From からの同一 Subject のメールは、最大61件までグルーピングされていた 2006/7 以降 同一 From からの同一 Subject のメールはグルーピングされない 原因調査 久しぶりに mixi2gmail.yaml を動かして確認。BreakEntriesToFeeds で分割しているの
UnderC for Windows and Linux vs 1.2.8 has been released The goal of the UnderC project is to produce a useful C++ interpreter which supports "pocket" versions of standard library classes (iostreams, strings, vectors, lists, maps, etc) and the STL algorithms. It is particularly intended to make life easier for students beginning C++. A beta version of USE (the UnderC Scripting Environment) is now
お客様の設定により、お客様情報が「非表示」となっております。お客様情報を表示するにはdアカウントでログインしてください。 お客様情報表示についてへ お客様情報表示についてへ 株式会社エヌ・ティ・ティ・ドコモ Research In Motion NTTドコモ(以下ドコモ)およびResearch In Motion(以下RIM、社長兼共同CEO:マイク・ラザリディス、本社:カナダ オンタリオ州)は、RIM社製のモバイル情報端末であるBlackBerry端末をドコモが導入することについて基本合意に達しました。 今回のRIM社製のモバイル情報端末は、法人ユーザーのモバイルソリューションにおけるご要望にお応えするものです。RIM社が提供するBlackBerry Enterprise ServerTMと、Microsoft® Exchange, IBM Lotus® Domino®, Novell
YaYacc YaYacc -- an abbreviation for Yet Another Yacc. The programm was created as a syntactical analyzer, which is compatible with original on algorithm analysis and perceived language with yacc. It generate C++ code. Resulting code can be used in multithreaded applications. Features YaYacc guarantees: - Transmission of yacc descriptions to template code on C++ language. - The work of the resul
せっかく、bisonの導入方も掘り起こしてきたので、自分がどのようにbisonを利用しているのかも書いておこうと思う。 bisonは、特に何の指定もしなければyyparse関数で広域変数yylvalに意味値を代入し、トークン型を返すことで構文解析を行う。このような 構文解析器(以後、パーサと呼ぶ)を非再入可能構文解析器と呼ぶ。 この方法では、単一のパーサを同期して回す分には問題が無いが、非同期で複数スレッドからの利用など、解析中にパーサが再度呼び出されると、広域変数を利 用しているため競合が起きる。 これを防ぐため、bisonは再入可能(純粋)パーサの生成ができるようになっている。 現在オブジェクト指向が主流であり、パーサも一つのオブジェクトとして利用できることが望ましい。複数インスタンスからのパーサの利用を考えると、再入可 能であることは必須である。(それなら、bison++を使えとい
前回生成したレキサは、そのままではbisonで生成した再入可能なパーサと併用できない。 bisonとflexを併用するためには、yyFlexLexer::yylex()がYYSTYPE型のポインタを引数として受け取れることが条件となる。最も簡単なのはFlexLexer.hをコピーして編集してしまうという方法だが、それでは他のflexを用いたソースとの互換性が取れなくなってしまう。従って、FlexLexer.hは編集せずにソースコードで何とか補完する必要が出てくる。 そこで、yyFlexLexerのサブクラスでYYSTYPE型のポインタを受け取るyylexを定義し、YY_DECLマクロを用いてyylexの実装をサブクラスのyylexへと変更する。 また、yyFlexLexer::yylex()は仮想関数であるため、実態を与えてやらないとリンカにエラーを吐かれるので、C宣言部でYY_DE
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く