help-gawk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Make awk more friendly to multiline function declaration


From: Peng Yu
Subject: Re: Make awk more friendly to multiline function declaration
Date: Wed, 30 Mar 2022 12:51:03 -0500

On 3/30/22, Nelson H. F. Beebe <beebe@math.utah.edu> wrote:
> Peng Yu <pengyu.ut@gmail.com> has asked about changing gawk's grammar
> to permit newlines between parameter names and commas.

My proposed extension is backward compatible. Whereas python2-python3
change is not backward compatible. I am not familiar with the
perl5-perl6 change, maybe it is also not backward compatible. So I
don't think your argument is valid in terms of POSIX portability.

> It is important to remember that gawk is just one of several
> implementations of the Awk programming language, and Awk itself was
> first defined in a public forum in the 1988 book ``The AWK Programming
> Language'' (ISBN 0-201-07981-X), and then more formally in successive
> IEEE POSIX Standards.
>
> It is a great strength of the Awk language that it is both
> standardized, widely available, and independently implemented.  Awk
> programs enjoy a high degree of portability across all modern
> operating systems.
>
> By contrast, several other widely used scripting languages appear to
> have only a single implementation, and vague grammars.  The current
> chaos caused by introduction of incompatible syntax between Python
> versions 2 and 3, and Perl versions 5 and 6, should be a strong lesson
> that language stability matters for users of the languages, who are
> far more numerous than the authors of interpreters and compilers, and
> who have academic / corporate / industrial / governmental
> responsibilities of writing and maintaining software over long
> periods, and for applications that may have huge financial /
> institutional / career importance.
>
> I am aware of at least one commercial symbolic algebra system where
> program meaning has changed with successive releases, because there
> was no formal public grammar specification.  That misfeature thwarted
> an important project of translating software in that language into
> equivalent code in another algebra system.
>
> The gawk team has chosen to experiment with carefully specified
> language extensions that offer useful new features, but gawk can still
> operate in POSIX Standard mode, and Awk programmers can choose to use
> gawk extensions or not.  I personally have written about a half
> million lines of code in the language, and have only rarely needed any
> of gawk's extensions.  It is far more important to me that my code be
> portable across awk implementations, and across operating systems.
>
> The POSIX Standards define a rigorous grammar for the Awk language,
> and in the 2001 standard, I find in the Shell and Utilities volume on
> page 171 this grammar snippet:
>
> 6555   param_list : NAME
> 6556              | param_list ',' NAME
> 6557                ;
>
> Elsewhere in the grammar, optional newlines are expressly indicated,
> as in this snippet:
>
> 6563     action  : '{' newline_opt                              '}'
> 6564             | '{' newline_opt terminated_statement_list    '}'
> 6565             | '{' newline_opt unterminated_statement_list  '}'
> 6566             ;

I don't see that newline_opt enforces a slash before a newline. Could
you provide the POSIX definition where it requires a backslash before
a newline in function declarations?

> Thus, Peng's request for permitting newlines before the comma in line
> 6556 violates the grammar.
>
> Having such extensions in particular implementations would be
> detrimental to software portability, and I suggest that further
> discussion on this list of Peng's proposal be dropped.
>
>
> -------------------------------------------------------------------------------
> - Nelson H. F. Beebe                    Tel: +1 801 581 5254
>  -
> - University of Utah                    FAX: +1 801 581 4148
>  -
> - Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu
>  -
> - 155 S 1400 E RM 233                       beebe@acm.org
> beebe@computer.org -
> - Salt Lake City, UT 84112-0090, USA    URL:
> http://www.math.utah.edu/~beebe/ -
> -------------------------------------------------------------------------------
>
>


-- 
Regards,
Peng



reply via email to

[Prev in Thread] Current Thread [Next in Thread]