ストレンジコード―難解プログラミング言語を巡る不思議な旅 [単行本]
    • ストレンジコード―難解プログラミング言語を巡る不思議な旅 [単行本]

    • ¥4,730142 ゴールドポイント(3%還元)
    • 在庫あり2024年10月14日月曜日までヨドバシエクストリームサービス便(無料)がお届け
100000009003803213

ストレンジコード―難解プログラミング言語を巡る不思議な旅 [単行本]

価格:¥4,730(税込)
ゴールドポイント:142 ゴールドポイント(3%還元)(¥142相当)
フォーマット:
お届け日:在庫あり今すぐのご注文で、2024年10月14日月曜日までヨドバシエクストリームサービス便(無料)がお届けします。届け先変更]詳しくはこちら
出版社:秀和システム
販売開始日: 2024/02/17
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可

カテゴリランキング

店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

ストレンジコード―難解プログラミング言語を巡る不思議な旅 の 商品概要

  • 要旨(「BOOK」データベースより)

    本書は、コンピュータを使うだけでなく、それ以上のことをしようとする人々に向けて書かれています。あなたがプロの開発者なら、自分の技術について普通とは違う方法で考えることから得られる自由を高く評価してくれるでしょう。あなたが学生なら、プログラミング入門のような授業で得られるものを超えたプログラミングの可能性を感じることができるはずです。あなたが趣味でコンピュータに触れているなら、おそらくすでに難解プログラミング言語についてある程度の知識があり、それに対する情熱を追求したいと思っているかもしれません。さあ、この世界に飛び込んできてください。こっちの水は甘いぞ。(『イントロダクション』より)
  • 目次

    序文
    謝辞
    日本語版のためのまえがき
    監訳者まえがき
    訳者まえがき

    イントロダクション

    Part 1 プログラミング言語とは
    Chapter 1 歴代のプログラミング言語たち
     1.1 プログラミング言語古生物学
     1.2 最初のプログラミング言語
      1.2.1 コンピュータがなかった時代のプログラミング
      1.2.1 最初の現代的プログラミング言語
     1.3 ALGOL
     1.4 APL
     1.5 BASIC
     1.6 PL/I
     1.7 Logo
     1.8 Simula
     1.9 Pascal
     1.10 Prolog
      1.10.1 家族関係のモデリング
      1.10.2 フィボナッチ数列の実装
     1.11 Smalltalk
      1.11.1 Smalltalkの基本的な機能
      1.11.2 レースを開催してみよう
     1.12 Standard ML
     1.13 本章のまとめ
    Chapter 2 プログラミング言語の本質
     2.1 プログラミング言語の定義
     2.2 構文とセマンティクス
     2.3 プログラミング言語の実装
      2.3.1 トークン、字句解析器、構文解析器
      2.3.2 インタプリタ
      2.3.3 コンパイラ
      2.3.4 バイトコードコンパイラ
     2.4 データ型
      2.4.1 プリミティブなデータ型
      2.4.2 レコード
      2.4.3 Pascalのレコード
      2.4.4 C言語の構造体
     2.5 データ構造
      2.5.1 配列
      2.5.2 連結リスト(リンクリスト)
      2.5.3 木構造
      2.5.4 ハッシュテーブル
     2.6 変数とスコープ
      2.6.1 レキシカルスコープ
      2.6.2 ダイナミックスコープ
      2.6.3 Python
      2.6.4 C言語
      2.6.5 SNOBOL
      2.6.6 Perl
     2.7 プログラムのフロー制御
      2.7.1 非構造化言語
      2.7.2 構造化言語
     2.8 プログラミングパラダイム
      2.8.1 命令型
      2.8.2 オブジェクト指向
      2.8.3 宣言型
      2.8.4 配列の処理
     2.9 まとめ
    Chapter 3 チューリングマシンおよびチューリング完全
     3.1 停止性問題
     3.2 チューリングマシン
     3.3 万能チューリングマシン
     3.4 チューリング完全性
     3.5 チューリングマシンを作ろう
      3.5.1 シミュレータ
      3.5.2 サンプル紹介
     3.6 まとめ

    Part 2 非定型プログラミング言語
    Chapter 4 Forth
     4.1 インストール
     4.2 起源と哲学
     4.3 言語
      4.3.1 スタックを理解する
      4.3.2 スタックの利用
      4.3.3 ワードとループ
      4.3.4 真とは何か
      4.3.5 その他の制御構造
      4.3.6 Forthのメモリの使い方
      4.3.7 入力と出力
     4.4 平方根の再検討
     4.5 考察
     4.6 まとめ
    Chapter 5 SNOBOL
     5.1 インストール
     5.2 起源と哲学
     5.3 言語
      5.3.1 SNOBOLを実行する
      5.3.2 変数とデータ型
      5.3.3 配列とテーブル
      5.3.4 パターンの嵐
      5.3.5 関数
      5.3.6 入力と出力
     5.4 SNOBOLによる機械学習
      5.4.1 機械学習の基礎
      5.4.2 分類器の実装
      5.4.3 分類器の実行
     5.5 議論
     5.6 まとめ
    Chapter 6 CLIPS
     6.1 インストール
     6.2 起源と哲学
     6.3 言語
      6.3.1 CLIPSを用いた作業
      6.3.2 「Hello, world!」の実装
      6.3.3 事実と規則
     6.4 CLIPSイン・アクション
      6.4.1 簡単な電卓
      6.4.2 家族再考
      6.4.3 工場にて
      6.4.4 アイリスの分類用エキスパートシステム
     6.5 議論
     6.6 まとめ

    Part 3 難解プログラミング言語
    Chapter 7 ABCのABC
     7.1 ABC
      7.1.1 言語
      7.1.2 ABCの実装
      7.1.3 ABCをテストする
     7.2 ABC2
      7.2.1 機能の拡張
      7.2.2 ABC2の実装
     7.3 ABC2イン・アクション
      7.3.1 Hello World!
      7.3.2 パイの一切れ
      7.3.3 電気機械式アリスモメーター
     7.4 議論
     7.5 まとめ
    Chapter 8 FRACTRAN
     8.1 FRACTRANの仕様
     8.2 2つの実装の物語
      8.2.1 Schemeによる実装
      8.2.2 Pythonによる実装
     8.3 FRACTRANを使う
     8.4 FRACTRANを理解する
     8.5 その他のFRACTRANのサンプル
      8.5.1 引き算
      8.5.2 2つの整数の最大値
      8.5.3 レジスタの複製
      8.5.4 乗算
      8.5.5 コンウェイのPRIMEGAME
      8.5.6 コラッツ予想
      8.5.7 FRACTRANからの挨拶
     8.6 議論
      8.6.1 FRACTRANはチューリング完全なのか
      8.6.2 FRACTRANとコラッツ予想
      8.6.3 FRACTRANについての最終的な考察
     8.7 まとめ
    Chapter 9 PIET
     9.1 インストール
     9.2 Pietを理解する
      9.2.1 Pietの色彩
      9.2.2 数字の表現
      9.2.3 プログラムの表現
      9.2.4 Pietのコマンド
      9.2.5 プログラムの流れ
     9.3 Pietイン・アクション
      9.3.1 「2 + 2 = 4」の証明
      9.3.2 Hiと挨拶する
      9.3.3 カウントダウン
      9.3.4 疑似乱数生成器
     9.4 ピエト・モンドリアンへのオマージュ
     9.5 Pietの世界
      9.5.1 Pietについて
      9.5.2 コード
      9.5.3 実装およびツール
     9.6 考察
     9.7 まとめ
    Chapter 10 Brainfuck
     10.1 BFとは何か?
     10.2 2つの実装
      10.2.1 オリジナル版インタプリタ
      10.2.2 SNOBOLとBFの出会い
     10.3 BFイン・アクション
      10.3.1 初歩の一歩
      10.3.2 ビットをかじる
      10.3.3 乗法的乗数
     10.4 BFマルチバース
      10.4.1 サンプルコード
      10.4.2 チュートリアル
      10.4.3 実装
      10.4.4 インスピレーション
      10.4.5 BFの学術的側面
     10.5 考察
     10.6 まとめ
    Chapter 11 Befunge
     11.1 Befunge-93ワールドツアー
      11.1.1 Befunge-93のビルド
      11.1.2 テキストの出力
      11.1.3 BEditの使い方
      11.1.4 BefungeにHelloと挨拶させよう
     11.2 Befungeの実践
      11.2.1 流れ(フロー)に身を任せる
      11.2.2 橋を架ける
      11.2.3 サイコロを楽しむ
      11.2.4 放浪の旅
      11.2.5 オンザフライでプレイフィールドを更新する
     11.3 考察
     11.4 まとめ

    Part 4 自家製難解プログラミング言語
    Chapter 12 Filska
     12.1 哲学とデザイン
      12.1.1 プログラムの構造と構文
      12.1.2 フロー制御
      12.1.3 メモリ
      12.1.4 算術演算
      12.1.5 比較
      12.1.6 数学の関数
      12.1.7 入力と出力
     12.2 Filskaの実装
      12.2.1 全体構造と処理
      12.2.2 解析
      12.2.3 実行ループ
      12.2.4 引数を持たない命令
      12.2.5 引数付きの命令
      12.2.6 フロー制御命令
     12.3 まとめ
    Chapter 13 Filskaを使う
     13.1 こんにちは、世界!
      13.1.2 こんにちは、数学!
      13.1.2 こんにちは、多項式
      13.1.3 こんにちは、多項式!の実装
     13.2 フィボナッチとは誰か
     13.3 乱数
      13.3.1 MINSTDの実装
      13.3.2 MINSTDの評価を行う
     13.4 シンプルなフラクタル
     13.5 問題の根本に迫る
     13.6 直線への線形最小二乗フィット
     13.7 考察
     13.8 まとめ
    Chapter 14 Firefly
     14.1 哲学と設計
      14.1.1 移動命令
      14.1.2 表示命令
      14.1.3 音楽命令
      14.1.4 残りの命令
     14.2 実装
      14.2.1 インタプリタの構造とメインループ
      14.2.2 移動命令
      14.2.3 表示命令
      14.2.4 音楽命令
     14.3 micro:bitの設定
      14.3.1 micro:bitハードウェアの概要
      14.3.2 外部スピーカーの使用
     14.4 まとめ
    Chapter 15 Fireflyを使う
     15.1 プロセス
      15.1.1 Fireflyのコードを書く
      15.1.2 コンソールインタプリタの利用
      15.1.3 バンドルの作成
     15.2 フライ・タイム
     15.3 スペース・トレック
     15.4 光輝くベートーヴェン
     15.5 ダンス・ダンス
      15.5.1 ポーズ
      15.5.2 ダンス
      15.5.3 音楽
     15.6 ティー・タイム
     15.7 考察
     15.8 まとめ
    Chapter 16 さらに先へ
     16.1 紹介しきれなかった言語たち
      16.1.1 Malbolge
      16.1.2 INTERCAL
      16.1.3 Whitespace
      16.1.4 Shakespeare
      16.1.5 Whirl
      16.1.6 Taxi
      16.1.7 Dathanna
     16.2 プログラミング言語リソース
      16.2.1 プログラミング言語
      16.2.2 データ構造
      16.2.3 コンパイラとインタプリタ
     16.3 エピローグ

    Appendix A Fireflyによる遺伝的プログラミング
     A.1 遺伝的プログラミング入門
     A.2 遺伝的プログラミングの仕組み
     A.3 LED表示の定義
     A.4 簡易版Fireflyインタプリタ
     A.5 遺伝的アルゴリズム
     A.6 全てを1つにまとめる
     A.7 Fireflyのプログラムの発展
      A.7.1 警告サイン
      A.7.2 レーダースイープ
      A.7.3 跳ねるボール
     A.8 考察
      A.8.1 母集団の効果
      A.8.2 最終プログラムの多様性
      A.8.3 遺伝的プログラミングは最短のプログラムを見つけられるのか
     A.9 最終的な感想
  • 出版社からのコメント

    難解プログラミング言語を巡る不思議な旅
  • 内容紹介

    本書は、「難解プログラミング言語」(エソラング)と呼ばれる言語について、さまざまな角度から解説したものです。「難解プログラミング言語」とは何でしょうか。本書では、「プログラミング言語とはどのようなものになりうるのか、どのように創造的でエレガントな方法で思考やプロセスを表現することができる、一風変わった言語」と定義しています。つまり、役に立たない言語ということでしょうか。そうではありません。多くの難解プログラミング言語は趣味的なものであり、中には冗談のようなものもありますが、実用的に使われている言語もあるのです。そういった「実用的な」言語から、「冗談のような」言語まで、本書は区別なく取り上げます。
    本書は4つのパートに分かれています。パート1は、背景資料として、コンピュータサイエンスの課程で扱われるようなプログラミング言語のトピックについて取り上げます。プログラミング言語の歴史を古生物学になぞらえて説明しています。コンピュータの黎明期に現れた言語は、現代から見ると難解プログラミング言語に思えても、当時は必然性があったのです。さしずめ、カンブリア爆発に相当するでしょう。そういった歴史的背景を押さえておきます。そして、もう1つ、難解プログラミング言語に関して重要な点である「チューリング完全」についても学びます。
    パート2は、道具としてのプログラミング言語と、パート3とパート4で見ていく難解プログラミング言語との架け橋となる言語を取り上げます。実用的でありながら、本流から外れている言語です。筆者は、これらを「非定型」言語と呼んでいます。
    そして、パート3では、「ABC」「FRACTRAN」「Piet」「Brainfuck」「Befunge」という5つの難解プログラミング言語を解説しています。それぞれ異なる方向に難解ですが、きっと、どの言語でもコードを書いてみたくなるはずです。
    パート4では、パート4では、本書のためのオリジナルの難解プログラミング言語「Filska」と「Firefly」について、言語設計、実装、拡張方法まで、詳細に説明しています。難解言語に限らない、「新しく言語を作る全て」が詰まっています。さらに、付録では、Fireflyを使った遺伝的プログラミングについても説明しています。言語を拡張するという好例です。
    本書では、いくつかの難解プログラミング言語の実装にPythonを利用するので、Pythonに関する知識があれば役立ちます。なくても問題はありません。本書で最も重要なのは「好奇心」です。あなたがプログラミングが好きで、いろいろなことに「なぜ?」と疑問に思う気持ちを持っているなら、必ず本書を楽しめるはずです。ようこそ、この奇妙で素晴らしき、変態言語の世界へ。

    図書館選書
    「難解プログラミング言語」(エソラング)と呼ばれる言語について解説したものです。あなたがプログラミングが好きで好奇心旺盛なら、必ず本書を楽しめるはずです。ようこそ、この奇妙で素晴らしき、変態言語の世界へ。
  • 著者紹介(「BOOK著者紹介情報」より)(本データはこの書籍が刊行された当時に掲載されていたものです)

    クノイズル,ロナルド T.(クノイズル,ロナルド T./Kneusel,Ronald T.)
    プログラミング言語の愛好家。1980年頃、初めてApple 2コンピュータに出会ったときにプログラミング言語を体験しました。それから数十年後、コロラド大学ボルダー校で機械学習の博士号を取得し、現在は深層学習システムの開発に携わっている

    水野 貴明(ミズノ タカアキ)
    ソフトウェア開発者/技術投資家。Baidu、DeNAなどでソフトウエア開発やマネジメントを経験したのち、現在は英AI企業Nexus FrontierTechのCTO/Co‐Founderとして、多国籍開発チームを率いている。また、その傍ら、スタートアップを中心に開発支援や開発チーム構築などの支援や、書籍の執筆、翻訳なども行っている

    竹迫 良範(タケサコ ヨシノリ)
    株式会社リクルート勤務。1977年生まれ。初めて触ったコンピュータは、富士通FM TOWNSの32ビット世代。広島市立大学在学中に、日本語検索エンジン「Namazu for Win32」のオープンソース開発に参加。JAPHの文化に触れ、Code GolfやPolyglot作成が趣味に。Shibuya Perl Mongersの2代目リーダー。セキュリティ・キャンプ講師、初代SECCON実行委員長、IPA未踏PMとして高度IT人材育成に携わる。SC 22/ECMAScript Ad HocにてISO/IEC 16262:2011の国際標準化活動に従事、SC 22/C#、CLI、スクリプト系言語SGエキスパートを歴任
  • 著者について

    Ronald T. Kneusel (ロナルドティークノイズル)
    プログラミング言語の愛好家。1980年頃、初めてApple IIコンピュータに出会ったときにプログラミング言語を体験した。それから数十年後、コロラド大学ボルダー校で機械学習の博士号を取得し、現在は深層学習システムの開発に携わっている。

    水野貴明 (ミズノタカアキ)
    ソフトウェア開発者/技術投資家。Baidu、DeNAなどでソフトウエア開発やマネジメントを経験したのち、現在は英AI企業Nexus FrontierTechのCTO/Co-Founderとして、多国籍開発チームを率いている。また、その傍ら、スタートアップを中心に開発支援や開発チーム構築などの支援や、書籍の執筆、翻訳なども行っている。主な訳書に『プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ』(秀和システム)、『JavaScript: The Good Parts』(オライリー・ジャパン)、『サードパーティJavaScript』(KADOKAWA/アスキー・メディアワークス)、著書に『ULTIMATE Perl ―究極のPerlスクリプトの世界へ』(ソシム)、『Web API: The Good Parts』(オライリー・ジャパン)などがある。

    竹迫良範 (タケサコヨシノリ)
    株式会社リクルート勤務。1977年生まれ。初めて触ったコンピュータは、富士通FM TOWNSの32ビット世代。広島市立大学在学中に、日本語検索エンジン「Namazu for Win32」のオープンソース開発に参加。JAPHの文化に触れ、Code GolfやPolyglot作成が趣味に。Shibuya Perl Mongersの2代目リーダー。セキュリティ・キャンプ講師、初代SECCON実行委員長、IPA未踏PMとして高度IT人材育成に携わる。SC 22/ECMAScript Ad HocにてISO/IEC 16262:2011の国際標準化活動に従事、SC 22/C#、CLI、スクリプト系言語SGエキスパートを歴任。主な著書に『ECMA-262 Edition 5.1を読む』(秀和システム)などがある。

ストレンジコード―難解プログラミング言語を巡る不思議な旅 の商品スペック

商品仕様
出版社名:秀和システム
著者名:Ronald T Kneusel(著)/水野 貴明(訳)/竹迫 良範(監訳)
発行年月日:2024/02/29
ISBN-10:4798069744
ISBN-13:9784798069746
判型:B5
発売社名:秀和システム
対象:専門
発行形態:単行本
内容:電子通信
言語:日本語
ページ数:604ページ
縦:24cm
横:18cm
厚さ:3cm
その他: 原書名: Strange Code:Esoteric Languages That Make Programming Fun Again〈Kneusel,Ronald T〉
他の秀和システムの書籍を探す

    秀和システム ストレンジコード―難解プログラミング言語を巡る不思議な旅 [単行本] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!