comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Teaching C/C++ from Ada perspective?
Date: Fri, 6 Jul 2018 05:05:39 -0700 (PDT)
Date: 2018-07-06T05:05:39-07:00	[thread overview]
Message-ID: <bff76e0d-e20c-438a-8326-1344fa5ce6ba@googlegroups.com> (raw)
In-Reply-To: <9bb99fb4-b9c7-4516-97b5-da41466e96be@googlegroups.com>

I found another 2 OCR mistakes that occurred within MacOS's PDF-world during the bitmap-to-text copy paste (that I missed during the original edit).  Their correction is interspersed below, to try to preclude anyone from pondering what a “mamfest” is.

On Thursday, July 5, 2018 at 10:32:36 PM UTC-5, Dan'l Miller wrote:
> On Tuesday, July 3, 2018 at 3:00:27 AM UTC-5, Maciej Sobczak wrote:
> > > Overtly declaring the range of integers over which this portion of code operates can be a key portion
> > > of eliminating all variants of the overflow/overrun vuln(erabilitie)s that worms utilize as their attack
> > > vector to insert machine code.
> > ...
> > > But never mind SEI software engineering principles, eh?
> > 
> > So can you kindly point me to where exactly SEI recommends defining integer range types ...
> 
> Maciej, I'll see your integer range types as software-engineering principles emanating from the SEI team
> at CMU, and raise you one Tartan in 1978.  The integer ranges as constant attributes on integer (or,
> indeed, on any scalar type) comes not merely from the various team members, but from the imprimatur
> of William A. Wulf himself, the founder-progenitor-anchor-pillar of the entire software-engineering team
> at CMU.
> 
> The Software Engineering Institute was formed on 14 November 1984.  Prior to the official formation of
> the SEI, William Wulf's team were a DoD-supported research contractor at Carnegie Mellon University.
> The DoD High-Order Language Working Group (HOLWG) authored a series of -man requirements for
> HOLWG's new language:  strawman, woodenman, tinman, ironman, steelman.  Ironman and Steelman
> were issued to the {Yellow, Blue, Red, Green} color teams to design a language that conforms to the
> Ironman-at-first and then-Steelman requirements.  Steelman requirements added a brand-new
> requirement that had no precursor in Ironman:
> “3-1C. Numeric Variables. The range of each numeric variable must be specified in programs and shall
> be determined by the time of its allocation. Such specifications shall be interpreted as the minimum
> range to be implemented and as the maximum range needed by the application. Explicit conversion
> operations shall not be required between numeric ranges.”
> 
> https://en.wikisource.org/wiki/Steelman_language_requirements
> 
> But notably (and the ultimate SEI/CMU answer to your question) there were 2 pre-disqualified
> noncolor/noncompetitor language designs that had a extra-special relationship with HOLWG:  Tartan
> from the pre-SEI team at CMU and -75+15PL/I from IBM.
> 
> http://archive.adaic.com/pol-hist/history/holwg-93/holwg-93.htm
> As mentioned in the 2nd paragraph below Figure 9, Tartan was an apparent wordplay on the color
> naming of the 4 official competitors; tartan is a specific kind of plaid in William Wulf's ancestral
> Scotland.  -75+15PL/I was PL/I with 75% of PL/I removed and a new 15% added.  HOLWG issued Ironman
> requirements to CMU and IBM to design a language from Ironman, and harshly critique whether Ironman
> was on-track or off-track.  HOLWG utilized the language definitions (including the language designers'
> insights and criticisms) that they got back from Tartan and -75+15PL/I to author their Steelman
> requirements as a definitive improvement over their Ironman requirements.
> 
> https://ia800804.us.archive.org/7/items/DTIC_ADA062815/DTIC_ADA062815.pdf
> In §1.7 Unresolved Issues, the §1.7.3 Definition of Integers overtly recommends the content that became
> Steelman's new 3-1C requirement:
> “In the reference manual we chose fIxed as a primitive and defined lnt as a special case by choosing
> attributes appropriately. We believe it is possible to treat int as primitive and define Fixed as
> nonprlmative by associating •range•/precision bookkeeplng with the operations.”  [Operations were
> Tartan's jargon for compile-time definitions of the values of the attributes of types.]
> 
> [Btw, Dmitry, you & your Steelman 3-3F-esque compile-time constant tag attributes for untagged types
> should pay especial attention henceforth, because, had more of Tartan made it into Steelman and thus
> into Green/Ada, then you yourself [not language designers] would have been able to define your own
> compile-time constant tag attributes for •any• type.  In the form of a standard library of Tartan-esque
> type compile-time operations, you would have had your tags for untagged types feature in a
> hypothetical more-Tartan-influenced Ada83+ almost 4 decades ago.]
> 
> In §1.5.6 Definition of Types, we see::
> “A ••user•• may introduce a new type into his program with a type deflation. The type definition itself
> merely introduces the <type name> and defines the representation of the type. Operations are
> introduced by writing routines whose formal parameters are of the newly-dsflned type. …

defined

> ¶A type definition may be paremeterized with •attributes•. The bindings in the formal parameter list
> must be •const• or mamfest. If a <binding> is omitted, it will be assumed to be const[, •Dmitry•]. The

manifest

> names of the formal parameters of the type are available throughout the elaboration of the program as
> •constants• [just as in Steelman requirement 3-3F], called •attributes• [just as they later became known
> in Ada]. They are accessed by treating the <var ident> as a •record•[, Dmitry] and the type attribute as a
> [Steelman 3-3F-compliant] •const• field. Attributes for primitive types are given as part of the type
> definitions [just as they later became in Ada].”
> 
> So there we have it, almost* precisely as Maciej requested:
> constant compile-time attributes for integer (and fixed-point) ranges (and precision) from Carnegie
> Mellon University's DoD computer-science research team that a few years later named themselves
> Software Engineering Institute feeding directly into the requirements document that is to measure the
> amount of software-engineering-ness present in any programming language.
> 
> * just without mentioning C++ by name, mainly because C++ didn't exist yet (nor did C with Classes),
> because C++ hadn't yet mimicked Ada to this degree until a half to full decade later
> 
> Btw, Maciej, Steelman requirements are governing any programming language that purports to be a
> software-in-the-large software-engineering language, C++ included.
> 
> How well does 1990s-era {Ada95, C, C++, Java, Pascal}, and 2010s-era {D, Rust, Parasail} measure up
> against Steelman's software-engineering requirements?
> 
> https://www.dwheeler.com/steelman/steeltab.htm
> 
> http://jedbarber.id.au/steelman.html

  reply	other threads:[~2018-07-06 12:05 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-30 18:04 Teaching C/C++ from Ada perspective? kouaoua16
2018-06-30 18:15 ` Luke A. Guest
2018-06-30 19:27   ` Dan'l Miller
2018-06-30 19:07 ` Dan'l Miller
2018-07-01 16:12 ` kouaoua16
2018-07-01 17:08   ` Luke A. Guest
2018-07-01 19:19     ` Dan'l Miller
2018-07-02  6:12       ` Maciej Sobczak
2018-07-01 20:52 ` Maciej Sobczak
2018-07-01 21:35   ` Dan'l Miller
2018-07-02  5:56     ` Maciej Sobczak
2018-07-02  9:58       ` Marius Amado-Alves
2018-07-02 11:03         ` Maciej Sobczak
2018-07-02 13:52           ` Marius Amado-Alves
2018-07-04 12:10             ` Dan'l Miller
2018-07-02 20:14         ` Paul Rubin
2018-07-03  9:48           ` Marius Amado-Alves
2018-07-04  2:52             ` Paul Rubin
2018-07-02 18:52       ` Dan'l Miller
2018-07-03  8:00         ` Maciej Sobczak
2018-07-03 12:40           ` Dan'l Miller
2018-07-03 20:54             ` Maciej Sobczak
2018-07-04  3:10               ` Dan'l Miller
2018-07-04  7:59                 ` Maciej Sobczak
2018-07-04  8:37                   ` Marius Amado-Alves
2018-07-04 12:22                     ` Maciej Sobczak
2018-07-04 14:13                       ` Simon Wright
2018-07-04 14:56                         ` Maciej Sobczak
2018-07-04 15:52                           ` Dmitry A. Kazakov
2018-07-04 16:24                             ` Alejandro R. Mosteo
2018-07-04 20:00                               ` Jeffrey R. Carter
2018-07-05 18:35                                 ` Randy Brukardt
2018-07-05 19:39                                   ` Jeffrey R. Carter
2018-07-06 18:45                                     ` Randy Brukardt
2018-07-04 20:13                             ` Maciej Sobczak
2018-07-04 21:09                               ` Dmitry A. Kazakov
2018-07-05  5:49                                 ` Maciej Sobczak
2018-07-05  7:37                                   ` Dmitry A. Kazakov
2018-07-05 13:14                                     ` Maciej Sobczak
2018-07-05 15:18                                       ` Dmitry A. Kazakov
2018-07-05 19:16                                       ` Randy Brukardt
2018-07-07 15:09                                         ` Lucretia
2018-07-05 19:12                                     ` Randy Brukardt
2018-07-05 20:10                                       ` Maciej Sobczak
2018-07-06 19:01                                         ` Randy Brukardt
2018-07-06 19:35                                           ` Dmitry A. Kazakov
2018-07-05  7:43                                   ` Alejandro R. Mosteo
2018-07-05 18:53                                   ` Randy Brukardt
2018-07-05 19:06                                     ` Dan'l Miller
2018-07-06 18:47                                       ` Randy Brukardt
2018-07-05 20:12                                     ` Maciej Sobczak
2018-07-06 18:51                                       ` Randy Brukardt
2018-07-06 19:43                                         ` Dmitry A. Kazakov
2018-07-06 20:18                                           ` Dan'l Miller
2018-07-07  8:39                                             ` Dmitry A. Kazakov
2018-07-07 11:53                                           ` Björn Lundin
2018-07-06 20:22                                         ` Maciej Sobczak
2018-07-06 23:26                                           ` Paul Rubin
2018-07-07  6:17                                             ` J-P. Rosen
2018-07-07  6:37                                               ` Micronian Coder
2018-07-07  8:48                                                 ` Privacy and child packages (Was: Teaching C/C++ from Ada perspective?) Jacob Sparre Andersen
2018-07-07 20:19                                               ` Teaching C/C++ from Ada perspective? Maciej Sobczak
2018-07-08 15:25                                           ` Simon Wright
2018-07-08 20:00                                             ` Maciej Sobczak
2018-07-09  9:04                                               ` Alejandro R. Mosteo
2018-07-05 15:30                               ` Dan'l Miller
2018-07-05 20:38                                 ` Maciej Sobczak
2018-07-05 21:05                                   ` Dan'l Miller
2018-07-05 18:47                               ` Randy Brukardt
2018-07-04 16:01                           ` Simon Wright
2018-07-04 17:12                           ` G. B.
2018-07-04 20:18                             ` Maciej Sobczak
2018-07-04 21:03                               ` G.B.
2018-07-04 17:21                           ` Dan'l Miller
2018-07-04 20:36                             ` Maciej Sobczak
2018-07-04 22:44                               ` Dan'l Miller
2018-07-05  2:01                                 ` Luke A. Guest
2018-07-05  5:03                                   ` Dan'l Miller
2018-07-05  5:58                                 ` Maciej Sobczak
2018-07-05 19:25                                   ` Randy Brukardt
2018-07-05 19:22                                 ` Randy Brukardt
2018-07-05 18:31                       ` Randy Brukardt
2018-07-06  3:32           ` Dan'l Miller
2018-07-06 12:05             ` Dan'l Miller [this message]
2018-07-06 20:42             ` Maciej Sobczak
2018-07-06 21:32               ` Dan'l Miller
2018-07-07 20:43                 ` Maciej Sobczak
2018-07-08 17:36                   ` Dan'l Miller
2018-07-08 18:39                     ` Bill Findlay
2018-07-08 19:28                       ` Dan'l Miller
2018-07-09 12:34                         ` Bill Findlay
2018-07-09 15:19                           ` Dan'l Miller
2018-07-09 19:34                             ` Bill Findlay
2018-07-09 22:03                               ` Dan'l Miller
2018-07-09 22:35                                 ` Bill Findlay
2018-07-10  1:56                                   ` Lucretia
2018-07-10 23:14                         ` Randy Brukardt
2018-07-11 14:05                           ` Dan'l Miller
2018-07-11 20:20                             ` Randy Brukardt
2018-07-08 20:43                     ` Maciej Sobczak
2018-07-08 23:17                       ` Dan'l Miller
2018-07-09  6:13                         ` Maciej Sobczak
2018-07-09 16:35                           ` Dan'l Miller
2018-07-10 23:20                       ` Randy Brukardt
2018-07-10 23:51                         ` Britt
2018-07-02 17:10   ` kouaoua16
2018-07-02 17:28     ` Dennis Lee Bieber
2018-07-02 18:22     ` Maciej Sobczak
2018-07-02 20:27     ` G.B.
2018-07-02  0:11 ` Paul Rubin
2018-07-02 14:26 ` kouaoua16
2018-07-02 19:57 ` G.B.
2018-07-02 20:17   ` Dan'l Miller
2018-07-03  9:56 ` Brian Drummond
2018-07-04 12:18 ` Olivier Henley
2018-07-04 14:17   ` kouaoua16
2018-07-12  5:38 ` robin.vowels
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox