How is ML (and its variants e.g. SML) a metalanguage. What is the object language that ML describes? Is it just because functions are considered values, therefore code is treated in the same way as data?
Why is ML called Meta-Language?
457 Views Asked by Gepapado At
2
There are 2 best solutions below
0
Drup
On
It actually comes from its original use case.
ML was designed as a language to write theorem provers. In this case, ML is the programming language that you use to describe the theory. It's the language above the theory: the meta-language. Or, as Milner would put it in the original paper:
We also discuss extending these results to richer languages; a type-checking algorithm based on W is in fact already implemented and working, for the metalanguage ML in the Edinburgh LCF system.
The name stuck, so now it's called like this, even though it doesn't describe an object language in the general sense.
Related Questions in METAPROGRAMMING
- How to declare abstract class static fields in Python?
- C++ Metaprogramming to check type existence
- How do I write an implicit cast for my strongly typed interpreter? (C++)
- Is it possible to append subroutines to a Raku module at runtime?
- Is it possible to use constexpr if to check if the type is a container or a std::string
- Facing issue when running xbuild after building mono via meta-mono version 6.12.0.161
- Automatically assign index for every template specialization at compile time via C++ meta programming?
- Feasibility of database as middleware
- Compilation-time initialization of an array of struct with the information of another array
- Prepend Kernel module function globally
- From Variadic Arguments to its Inner Types as Variadic Arguments
- How to create a 0-arity method without parenthesis using Scala 3 low-level typed AST metaprogramming API?
- As a Rust library author, what should my `#![recursion_limit]` be?
- How to query strings by specifying multiple matching patterns using DolphinDB metaprogramming?
- How to dynamically provide arguments to a class __init__ function based on attributes?
Related Questions in SML
- Creating an instance of a Binary Tree (Programming Standard ML by Robert Harper)
- Obtain a function as tree in SML
- TextIO.openIn:"No such file or directory" in Poly/ML
- How to implement Label/TextVIew with giraffe library in SML
- Compiling Giraffe library Hello World on Ubuntu
- How to match function type in signature in SML
- Error "no *.cm, *.mlb, or millet.toml files found in this directory" in VS code using SML
- I'm new to SML/NJ and there's some questions bothering me. I don't know how to use Math or String in the basis lib
- SML Looping through 2 Random variables and ordering them?
- How do I fix my standard ml code when I have an unbound value 'a'?
- How to install and run SML/ NJ in VScode
- UTF-8, Unicode in SML/NJ
- What is the difference between ('a,'b) and ('a*'b)?
- sml standard pop function vs user defiend. And return values
- Error: unbound type constructor: TypeInteger
Related Questions in SMLNJ
- Use external SML file in SML/NJ build configuration
- I'm trying to install SMLNJ using iTerm and ZSH but I keep getting "sml: cannot find runtime system /usr/local/smlnj/bin/.run/run.-"
- Error "no *.cm, *.mlb, or millet.toml files found in this directory" in VS code using SML
- UTF-8, Unicode in SML/NJ
- Error: unbound type constructor: TypeInteger
- Recursive function that deals with "ref" in SML
- How to add all elements in a list in SML
- SML: What is the difference of input and inputAll
- SML: Error: types of rules don't agree when I open the Real signature
- Why is the result of the following functor not opaque?
- Multiplying real number extracted of a pair using case of in StandarML
- How to check if x value exists in a list
- Error while using HashTable structure in files used in a CM file
- How to cast value in SML? Trying to take return type of S-Expression parser and convert to data structure
- In SML - Why doesn't simple recursion always return 0 if first expression met?
Related Questions in ML
- Creating an instance of a Binary Tree (Programming Standard ML by Robert Harper)
- Please answer this in SOSML
- Why is the result of the following functor not opaque?
- Multiplying real number extracted of a pair using case of in StandarML
- Please, help me. I'm a beginner and I don't really understand
- Meaning of a recursive data type definition in lazy vs strict languages
- Evaluation order of let-in expressions with tuples
- I'm stuck trying to implement this function in Racket and ML
- SML returns the same tuples
- Variables in Standard ML change if a new function declaration,was apllied by using the changed variable
- Symmetric Relation Recursive SML
- Composistion in SML (Discreate Math and Functional Programming)
- Recusive ML function of exponential with three variable helper function
- SML Uncaught Exception Empty
- How do you see if adjacent elements repeat in a list? (SML)
Related Questions in METALANGUAGE
- What's the different between these two `type` define which have different generic place, and how to use them?
- getting ''a type instead of 'a in sml
- Understanding "let" & "in" in ML programming
- Creating A Dictionary In SML
- Is there a metalanguage, similar to BNF that can concisely describe self-describing data?
- Understanding terminology used to describe the DOM
- Why is ML called Meta-Language?
- How do I put the code `cons[A;B]` in a repl, run it, and see the output `(A . B)`?
- Is there a complete metalanguage?
- Fragment function seems properly written but Metal complains
- MTLPixelFormatInvalid in XCode8 Swift 2.2
- OSX - Convert GLSL 'InOut' to Metal
- Module meta-language in Racket
- Standard Meta Language: are hd and tl evaluated right or left first?
- Silhouette Outline Shader Modifier via Metal in SceneKit
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
ML originally was the meta language for the LCF theorem prover developed by Milner in the 70s. You could use it define and perform proofs in this system, e.g., by writing proof tactics in ML. See also the Wikipedia article