The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Muldis::D::Core - Muldis D core data types and operators

VERSION

This document is Muldis::D::Core version 0.97.0.

PREFACE

This document is part of the Muldis D language specification, whose root document is Muldis::D; you should read that root document before you read this one, which provides subservient details.

That said, because this Core document is otherwise too large to comfortably fit in one file, it has been split into pieces and therefore has its own tree of parts to follow, which it is the root of: Muldis::D::Core::Types, Muldis::D::Core::Types_Catalog, Muldis::D::Core::Routines, Muldis::D::Core::Routines_Catalog.

DESCRIPTION

Muldis D has a mandatory core set of system-defined (eternally available) entities, which is referred to as the Muldis D core or the core; they are the minimal entities that all Muldis D implementations need to provide; they are mutually self-describing and are used to bootstrap the language; any entities outside the core, called Muldis D extensions, are non-mandatory and are defined in terms of the core or each other, but the reverse isn't true.

This current Core document features the boolean type and operators, plus the integer, bit string, and character string types, plus the tuple and relation type constructors and the more important relational operators, plus the type system minimal and maximal types, plus the special types used to define the system catalog, and the polymorphic operators that all types, or some types including core types, have defined over them, such as identity tests or assignment. (All of these are used for bootstrapping the Muldis D language, except for the bit string type, but that's still good to have in the core.)

Most of the Core document is actually in these pieces: Muldis::D::Core::Types, Muldis::D::Core::Types_Catalog, Muldis::D::Core::Routines, Muldis::D::Core::Routines_Catalog.

Extensions are in other documents.

Generic order-concerning types and operators, such as for sorting or quota queries or plain order-determination, which could be applied to any data type potentially, are separated into mainly just this extension: Muldis::D::Ext::Ordered.

All of the generic operators (except those that do or could apply to all types) concerning the integer numeric, bit string, character string, and rational numeric types don't exist in Core but have been separated into language extensions; while they are good for all implementations to have, they are less necessary than some other operators that actually were kept in Core. These are the relevant extensions: Muldis::D::Ext::Integer, Muldis::D::Ext::Blob, Muldis::D::Ext::Text, Muldis::D::Ext::Rational.

The most important boolean logic and relational nonscalar-concerning operators exist in Core, but a lot more are available in these extensions: Muldis::D::Ext::Bool, Muldis::D::Ext::Tuple, Muldis::D::Ext::Relation, Muldis::D::Ext::Set, Muldis::D::Ext::Array, Muldis::D::Ext::Bag, Muldis::D::Ext::Interval, Muldis::D::Ext::Counted.

These extensions do not generally just add operators for core types; rather they mainly define new types plus just operators for those: Muldis::D::Ext::Temporal, Muldis::D::Ext::Spatial.

SEE ALSO

Go to Muldis::D for the majority of distribution-internal references, and Muldis::D::SeeAlso for the majority of distribution-external references.

AUTHOR

Darren Duncan (perl@DarrenDuncan.net)

LICENSE AND COPYRIGHT

This file is part of the formal specification of the Muldis D language.

Muldis D is Copyright © 2002-2009, Muldis Data Systems, Inc.

See the LICENSE AND COPYRIGHT of Muldis::D for details.

TRADEMARK POLICY

The TRADEMARK POLICY in Muldis::D applies to this file too.

ACKNOWLEDGEMENTS

The ACKNOWLEDGEMENTS in Muldis::D apply to this file too.