Scala

用語

Scala

別名

-

識別情報

  • Term ID: src/main/doxsite/glossary/object-functional-programming/scala.dox

  • English label: Scala

  • Japanese label: Scala

  • Category: Object-Functional Programming

  • Status: normative

  • Definition authority: SimpleModeling BoK

定義

Scalaとは、オブジェクト指向と関数型の構成要素を一つの静的型システムで扱うプログラミング言語であり、SimpleModelingではCMLのモデル構造を実行可能なプログラムへ実現する主要な接続先です。

UML

UMLのType、Classifier、ClassとScalaのtype、trait、classは同一概念ではありません。設計モデルから実装言語へ実現するときに対応付けます。

オブジェクト関数パラダイム

Scalaは、class、trait、enumなどによるオブジェクト側の構造と、関数、値、作用、合成による関数側の構造を、共通の型システムで接続できます。この性質をSimpleModelingのオブジェクト関数パラダイムの実現に利用します。

CML

CMLのモデル要素は、CozyによってScalaのclass、trait、case class、enum、関数型などへ対応付けられます。この対応は意味に基づく変換であり、常に一対一ではありません。

Scala

この観点では、Scala固有のclass、trait、case class、enum、opaque type、union type、intersection type、関数型などを、モデルの実現に利用する言語構成要素として扱います。これらのScala構成要素は、UMLやCMLのType、Classifier、Classと対応付けられますが、同一概念でも固定的な一対一対応でもありません。

simplemodeling-lib

simplemodeling-lib はScala 3で実装され、Schema Data Type、Runtime Data Type、Value Domain、多重度、制約などの実行時契約を提供します。ライブラリの現在の構成をScalaという言語の定義と同一視しません。

公開成果物での用法

Scalaは固有名であるため翻訳せず、記事と動画でも Scala と表記します。初出時にも英語名の重複併記は行いません。

境界

  • Scala型はCMLのモデル型と同一ではありません。

  • ScalaはSimpleModelingのモデル意味の正本ではなく、その実現先です。

関連語

  • クラス

  • トレイト

  • オブジェクト関数パラダイム

  • Cozy Modeling Language

  • Cozy

  • simplemodeling-lib

参照

  • Scala 3 Reference

  • /Users/asami/src/dev2025/simplemodeling-lib/build.sbt

  • /Users/asami/src/dev2025/simplemodeling-lib/src/main/scala/org/goldenport/schema/DataType.scala

  • /Users/asami/src/dev2025/simplemodeling-lib/src/main/scala/org/goldenport/schema/Schema.scala

  • docs/spec/glossary-entry-format.md