Skip to content

[safety] Strange use of unqualified "safe language" #50

@lucteo

Description

@lucteo

In the context of a problem that we are trying to solve, let's consider the following safety property: "The values of all numbers in a program run are positive" -- noted as XP

The definitions of X safe operation and X safe language allows one to operate with our property XP.

The phrase:

A safe language (such as Java or Haskell) has only safe operations, so all possible programs in the language are safe.
sounds like a definition, but I assume it's just a variant of the above X safe language definition.

If we interpret "safe operation" as an operation that is an "X safe operation" for any X, then we can conclude that a "safe language" needs to also satisfy XP.

But languages like Java and Haskell allow expressing negative numbers, thus they don't uphold XP by default. Thus, we can't say that these languages are "safe languages", meaning that they only have "safe operations".

Similarly, the phrase

Since undefined behavior invalidates all guarantees (including memory safety), a memory-safe language can have no undefined behavior and is therefore a safe language
reads as if one doesn't have undefined behavior, all safety properties are uphold.

This issue is somehow similar to #48

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions