TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

連載

型の哲学──静的と動的の間にあるもの 9章

型の哲学──静的と動的の間にあるもの 第9章:まとめと未来の型システム ここまでの章で、「型とは何か」「静的と動的の違い」「現代の型システムの進化」などを多角的に見てきました。 最終章では、その総まとめとして本記事全体を振り返りつつ、今後のプロ…

型の哲学──静的と動的の間にあるもの8章

型の哲学──静的と動的の間にあるもの1章 第8章:型との向き合い方──実践的な設計指針 ここまで「型」についての思想・機能・言語的な側面を掘り下げてきましたが、本章では実際の開発現場で型とどう向き合い、どのように活用すべきか──すなわち「型の運用方…

型の哲学──静的と動的の間にあるもの7章

型の哲学──静的と動的の間にあるもの 第7章:型がもたらす安心とスピードのトレードオフ ここまでの章で、静的型付け・動的型付け、それぞれの特徴と実例を確認してきました。静的型は安全性を、動的型は柔軟性を、それぞれ開発者に提供します。しかし、ソフ…

型の哲学──静的と動的の間にあるもの 6章

型の哲学──静的と動的の間にあるもの 第6章:現代的な型システムと“いいとこ取り”言語たち 前章までで、静的型と動的型のそれぞれの利点と課題を明らかにしてきました。今章ではその中間に立ち、静的型の安全性と動的型の柔軟性を両立しようとする、現代的な…

型の哲学──静的と動的の間にあるもの 5章

型の哲学──静的と動的の間にあるもの 第5章:動的型付け言語の柔軟さと危うさ 前章では静的型付け言語の特性とメリット・デメリットについて整理しました。ここではその対極にある「動的型付け(dynamic typing)」を採用した言語群──Python、JavaScript、Ru…

型の哲学──静的と動的の間にあるもの 4章

型の哲学──静的と動的の間にあるもの 第4章:静的型付け言語の特性と功罪 C++に限らず、「静的型付け(static typing)」を採用するプログラミング言語は数多く存在します。Java、Rust、Go、Haskell、TypeScript(厳密には静的解析)などがその代表例です。 …

型の哲学──静的と動的の間にあるもの 3章

型の哲学──静的と動的の間にあるもの 第3章:キャストの実践パターンと落とし穴 前章ではC++のキャスト種別とその基本的な用途を紹介しました。本章では、実際のソフトウェア開発におけるキャストの使用例と、それによって起こりうるバグや問題点を具体的に…

型の哲学──静的と動的の間にあるもの 2章

型の哲学──静的と動的の間にあるもの 第2章:C++におけるキャストの基礎 「型変換」は静的型付け言語において避けて通れない操作であり、特にC++では多くのキャスト手法が用意されている。C++を学び始めた人にとって、static_cast や reinterpret_cast、cons…

型の哲学──静的と動的の間にあるもの1章

型の哲学──静的と動的の間にあるもの 第1章:なぜ今「型」なのか? プログラミングにおける「型」とは、変数や関数に対してどのようなデータを扱うかを定義するものである。この一見単純な概念は、ソフトウェアの安全性、可読性、保守性、パフォーマンスに多…

Smalltalk で Hello World

Smalltalkで「Hello, World!」を表示する方法【初心者向け入門ガイド】 Smalltalkは、純粋なオブジェクト指向プログラミング言語として1970年代に誕生しました。そのシンプルかつ強力な構文は、後の多くの言語(Ruby, Python, Javaなど)に大きな影響を与え…

ラダー vs ST 2025年最新の制御プログラミングの選択と最適化

ラダー vs ST(構造化テキスト):最新の制御プログラミングの選択と最適化

第5回 ST言語 IoTとPLCの連携

〜実践的なPLCプログラミングを学ぼう〜 第5回: IoTとPLCの連携 1. はじめに 前回の第4回: HMIとの連携とデータ可視化では、HMIを活用したデータの可視化と操作パネルの構築について学びました。 今回は、PLCとIoTの連携 に焦点を当て、クラウドとのデータ連…

Brainfuckコンパイラ自作シリーズ 第5回

Brainfuckコンパイラ自作シリーズ 第5回:最適化とエラー処理 はじめに 前回までに Brainfuck のコードを C 言語に変換し、コンパイルして実行する仕組み を実装しました。 しかし、現時点の実装では 非効率なコードが生成される ことや エラー処理が不十分 …

デザインパターン 第3回 (Adapter, Decorator, Facade)

GoF(Gang of Four)のデザインパターン:構造パターン(Adapter, Decorator, Facade)を徹底解説 1. はじめに オブジェクト指向プログラミングにおいて、「異なるクラスをどのように組み合わせるか?」 は重要な課題です。 特に、クラス間の結合度を最小限…

デザインパターン第2回 Factory & Builder

GoF(Gang of Four)のデザインパターン:Factory & Builderパターンを徹底解説 1. はじめに ソフトウェア開発において、「オブジェクトの作成をどのように管理するか?」 は重要な課題です。 適切な方法を選ばなければ、コードが煩雑になり、再利用性や拡張…

Brainfuckコンパイラ自作シリーズ 第4回

Brainfuckコンパイラ自作シリーズ 第4回:Cコード生成と実行 はじめに 本記事では、BrainfuckコンパイラのCコード生成部分を実装し、BrainfuckコードをC言語に変換してコンパイル・実行するまでの流れを解説します。 前回までに 字句解析(Lexing) と 構文…

GoFとは? デザインパターンの基礎 第1回

GoF(Gang of Four)とは?ソフトウェア設計を支えるデザインパターンの基礎 1. はじめに ソフトウェア開発において、「保守性が高く、再利用しやすい設計」 は重要なテーマです。 しかし、開発者が独自に設計を考えると、類似した問題に対して異なる解決策…

LOLCOSEでHelloworld

LOLCODEでHello Worldを出力する 1. はじめに LOLCODE は、インターネット文化(特にLOLCatsミーム)を元に作られたユーモラスなプログラミング言語 です。 文法が英語のスラングやミームのようになっており、楽しみながらプログラミングが学べる のが特徴で…

Brainfuck コンパイラの自作 第3回

Brainfuck コンパイラの自作 第3回 - 構文解析(Parsing)の実装 1. はじめに 前回は字句解析(Lexing)を実装し、Brainfuck のコードをトークンのリストに変換しました。 今回は 構文解析(Parsing) を行い、特に [ と ] の対応関係を管理する ジャンプテ…

初めての機械学習 分類編

初めての機械学習:分類タスクを学ぶ はじめに 機械学習はデータからパターンを学び、予測や分析を行う技術です。その中でも「分類(Classification)」は、与えられたデータを事前に定めたカテゴリに分類する手法であり、メールのスパム判定や画像認識など…

Brainfuck コンパイラの自作 第1回

Brainfuck コンパイラの自作 第1回 - 基本設計と環境構築 1. はじめに Brainfuck は、極端にシンプルな命令セットを持つ難解プログラミング言語(esolang)です。本記事では、Brainfuck のコンパイラを自作する方法を解説します。 なぜ Brainfuck コンパイラ…

第二回 ST言語入門

〜実践的なPLCプログラミングを学ぼう〜 1. はじめに 前回の「第一回 ST言語入門techcraft.hatenablog.com」では、ST(Structured Text)言語の基本構文や変数、制御構造(条件分岐・ループ)について学びました。今回は、実践的なPLCプログラムの作成に焦点…

第一回 ST言語入門

〜PLCプログラミングの基礎を学ぼう〜 1. はじめに:ST言語とは? ST(Structured Text)言語は、PLC(プログラマブル・ロジック・コントローラ)のプログラミング言語の一つであり、IEC 61131-3規格に準拠しています。C言語やPascalに似た構文を持ち、論理…