3

In the case that a type is specified, it could be on the left (before) or the right (after) of the variable name.

For example, C, C# and Java have the type specified before the variable:

int num = 5; 

TypeScript, Rust and Haxe (can) have the type specified after the variable:

let num: number = 5; let num: u32 = 5; var num: Int = 5; 

Is there a term that denotes the way a language's syntax work with types? E.g. "The _____ language uses (left/back or right/front) typing type declaration".

1
  • 2
    Ask yourself whether this actually needs a term or whether it's sufficient to say "language L declares its types {before,after} its identifiers." Commented Jan 13, 2019 at 11:50

2 Answers 2

6

There isn't a standard name for this as far as I'm aware. However, many features of programming languages are named after the language that introduced (or popularized) them, so one might refer to the former example as C-style declaration syntax (int x, y;) and the latter example as Pascal-style declaration syntax (VAR x, y : integer;).

n.b. It would be inappropriate to say that this is some sort of "typing" for the language. That term usually refers to static, dynamic, gradual, duck, etc. typing -- as in: the strength or classification of the language's type system, independent of the syntax.

5
  • 3
    Having the type on the left was already the case in ALGOL60, twelve years before C, and possibly also in ALGOL58. Having the type on the right was already the case in type theory before programming languages even existed. Commented Jan 12, 2019 at 23:58
  • Well, sure, but does "type theoretic type specification syntax" communicate the idea more effectively than "[Pascal/other popular language]-style declaration syntax" to a broad audience of programmers and software engineers? We shouldn't expect everyone to be familiar with the simply-typed lambda calculus. Commented Jan 13, 2019 at 0:13
  • Do you expect more programmers today would understand "My new language has C style declarations", or "ALGOL style declarations"? Commented Jan 13, 2019 at 0:16
  • To say C-style declarations implies much more than merely the type preceding the variables name, though. Ritchie's idea was to declare identifiers in contexts resembling their use: "declaration reflects use". "C is sometimes castigated for the syntax of its declarations... The syntax is an attempt to make the declaration and the use agree; it works well for simple cases, but it can be confusing for the harder ones, because declarations cannot be read left to right, and because parentheses are over-used." C K&R 5.12 pg 122. Commented Jan 13, 2019 at 0:45
  • If you have a clearer term, submit it as an answer. I'll even upvote it. Commented Jan 13, 2019 at 0:46
5

I think you could say that C/C++/Java uses prefix type declarations whereas Rust/Typescript use postfix type declarations.

1
  • 1
    Actually in c c++, the type is not only on the left. Exemple: int * p [10]; for an array of 10 pointeurs to ints. Commented Jan 13, 2019 at 7:07

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.