0

I was reading a paper (PDF) that introduced a term, internal syntax, that I've never heard of. What does this term mean, and how is it different from the source syntax?

It looks that the internal syntax is used to formally prove some properties about the language (at least in this paper). I'd like to know the exact definition and the background behind this syntax.

asked Jul 27, 2011 at 14:42
8
  • 1
    Where have you seen this term used? Commented Jul 27, 2011 at 14:47
  • I saw this term in a paper which introduces a new programming language. It looks it is a common term. Commented Jul 27, 2011 at 14:58
  • 3
    @salman.mirghasemi: Could you post a link/text that shows how the term is used? Commented Jul 27, 2011 at 15:05
  • 3
    Is it term translated from a foreign language into english? It could mean "intermediate language" for some JIT-compiled environments like .NET or Java, or it could refer to something like the Abstract Syntax Tree that is generated by the compiler after lexing/parsing. Commented Jul 27, 2011 at 15:05
  • @FrustratedWithFormsDesigner cs.cmu.edu/~aldrich/papers/plaid-oopsla11.pdf section4. Commented Jul 27, 2011 at 15:20

2 Answers 2

4

In your linked example paper, what the auther refers to as Internal Syntax is merely the grammar of the language, in this case expressed in the common EBNF (Extended Backus-Naur Form) notation.

It is a formal representation of the allowable constructs and how they can appear in the source file of the language, as it defines how the various keywords and other language items can and cannot appear in order to have a valid file.

Entering in BNF and the name of your favorite language should likely return many hits on any search engine, and may allow an easier entry to the concept of language grammar with some familiarity due to your recognizing the various keywords and the like.

Enjoy!

answered Jul 28, 2011 at 12:50
2

They're calling it "internal syntax" to contrast it with the syntax of previous examples, which are written in a semicolons-and-braces syntax.

See the first paragraph of section 4:

We start by describing the syntax and object model of a core language, which is intended to be simpler than Plaid source code yet be capable of representing all of the major semantic elements of Plaid.

It is typical in programming languages research to talk about a real language in terms of a core language model. The real language is often verbose, and it has many features necessary for getting work done that have nothing to do with the specific point of the paper. Given that most languages are developed as extensions of existing languages, it may have inherited its syntactic and/or semantic complexity from the language it's based on. The core language, in contrast, is designed to be really terse and simple, to have only enough features to illustrate the paper's point. For example, in MacQueen's paper on the ML module system, he models ML with a dependently-typed lambda calculus called SOL. ML has I/O, exceptions, and all sorts of other features; SOL doesn't, because they aren't necessary to explain how the module system works.

answered Jul 28, 2011 at 19:01

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.