BrainfuckソースコードをJavaバイトコードにコンパイルするプログラムを作ってみたのでメモ。 詳細なJavaバイトコードの解説は行いません。 リポジトリ The Java Virtual Machine Specification クラスファイルについては4章、命令セットについては6章を参照されたし。 Brainfuck? Wikipedia 命令がわずか8つしかないチューリング完全なプログラミング言語。実用性はないが面白い。 大雑把に説明すると、Brainfuck実行環境はbyteの配列とその要素を指すポインタを持ち、それを命令セットで操作していく感じ。 詳細はリンク先を参照のこと。 準備 byte配列をちまちま作るのはやっていられないので、まず、Byteを書き込むためのコンビニエンスメソッドを定義する。 /** * Helper class to create byte arr
この記事は、「Java Advent Calendar 2016 - Qiita」の4日目の記事となります。 昨日は、@susumuisさんの「Javaが僕にくれたもの | susumuis Info」でした。 明日は、@fukushiwさんのご担当となります。 ローカルキャッシュ、今ならなにを使うでしょう? Javaのキャッシュライブラリといえば、なにを使うでしょうか?OSSものを中心に考えると、次の2つあたりが浮かぶのではないかなぁと思います。 Ehcache ※2系が強いのかな? Google Guava なお、今回は分散キャッシュは考えないことにします。あくまで、ローカルキャッシュを対象に。 Ehcacheについては、すでにAPIが刷新された3系がリリースされており、現時点で3.1が利用できます。…あんまり名前を聞きませんけれど。 ここで、対象として挙げたいのが、今回紹介するCaf
Runnable/Callable Threads Executors/ExecutorService Futures Thread Safety Problem Example: Search Engine Solutions Runnable/Callable Runnable has a single method that returns no value. trait Runnable { def run(): Unit } Callable is similar to run except that it returns a value trait Callable[V] { def call(): V } Threads Scala concurrency is built on top of the Java concurrency model. On Sun JVMs,
初めまして、Ads Platform開発チームの岡田(@ocadaruma)です。 この記事はLINE Advent Calendar 2017の17日目の記事です。 今回、個人的に以前から気になっていたAkka HTTPの内部構造について、この機会に調べましたので紹介いたします。 Akka HTTPとは Akka HTTPは、Lightbend社によって開発されている、Scala/Java用のHTTP toolkitです。 現在はメンテナンスが終了したsprayの後継と位置付けられており、特徴的なRouting DSLをsprayから受け継いでいます。 また、Play Frameworkは2.6系より、Akka HTTPをデフォルトのバックエンドとして採用しています。 調査のきっかけ Routing DSLを始めとしたAkka HTTPのAPIは、シンプルかつ高いComposabilit
モナドを理解した人がまだ理解していない人になんとか理解してもらおうと書く解説記事ばかり積み上がっていくのはもはやIT系ブログ界の伝統芸ですが、この記事で少しでも貢献になるでしょうか。 この記事ではHaskellも関数型言語も出て来ません。読み慣れた手続き型言語でIOモナドがどういうものか読み解いていきます。 関数プログラマが避けたいこと=不確定さ 解説の前にまず例題を決めましょう。例題は「現在時刻を表示するプログラム」とします。簡単ですね。ちょっと書いてみましょう。 // Javaの例 Calendar now = GregorianCalendar. getInstance(); DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); System.out.println(formatter.format(n
こんにちは。アプリケーション基盤チームの横田です。 Javaの謎のパフォーマンス劣化にまつわる調査をしていたのですが、1ヶ月の苦労の末に原因がわかりましたので、報告させていただきます! 公開後に頂いたはてなブックマークでのご指摘・社内でのタイポ・読みにくいなどの指摘を受けてたので、謹んで修正させいただきます。 修正した内容につきましては、記事の最後を参照してください。 忙しい人のためのまとめ jdk-7u4以降のjdk-7 *1 でJavaのパフォーマンスが劣化する謎の現象 CodeCacheの容量限界に近づくとJITコンパイラを停止してコンパイルしたコードを捨てる機能が原因だった 起動オプションで回避できるので、長期運用するときは -XX:-UseCodeCacheFlushing, -XX:ReservedCodeCacheSize=128m をつける 上のオプションを設定した時に、C
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
米連邦最高裁判所は米国時間6月29日、著作権訴訟に関するGoogleの上告を棄却したとReutersが報じた。これによって、GoogleはOracleに対し、Javaプログラミング言語を使用するためのライセンス料を支払う義務が生じる可能性がある。2014年に控訴裁判所がOracleに有利な判決を下したことを受け、Googleが最高裁判所に上告していた。 Oracleは29日の声明で、最高裁の判断を歓迎した。 「29日の最高裁判所の判断は、イノベーションと、著作権保護を拠り所にイノベーションを推進する技術業界にとっての勝利である」とOracleの法務顧問を務めるDorian Daley氏は声明で述べた。 Googleは、法廷での争いを続けたい意向を表明した。 「ソフトウェア業界でイノベーションと競争を促進する相互運用性を引き続き擁護していくつもりだ」とGoogleの広報担当者は述べた。 Th
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く