From: | lars@bearnip.com (Lars Duening) |
Newsgroups: | comp.compilers |
Date: | 17 Oct 2004 16:12:23 -0400 |
Organization: | Compilers Central |
References: | 04-10-092 |
Keywords: | syntax, design |
Posted-Date: | 17 Oct 2004 16:12:23 EDT |
M Cleary <clearm_ATSYMBOL_comcast_DOT_net@giganews.com> wrote:
> I'm trying to create a simple scripting language using lex and yacc. I've
> noticed that the grammars for most scripting languages have some kind of
> keyword in front of function declarations. For example:
>
> ruby and python use "def"
> perl uses "sub"
> lua uses "function"
> tcl uses "proc"
There are multiple considerations here:
On a purely syntactical level, there is no necessity to have the keyword
precede the function name. However, doing so may simplify the compiler
as it is immediately clear if "foobar()" is the call or the definition
of a function.
Consistency with and disambiguation from other language constructs are
other factors in the placement decision. In Python, for example, 'def'
is not just a syntactical marker, but a statement creating the function
when it is executed; so by using 'def name()' order this statement is
kept consistent with the others.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.