Vraag Python geen gestandaardiseerde taal?


Ik stuitte op deze 'lijst van programmeertalen' en ontdekte dat populaire talen zoals Python niet gestandaardiseerd zijn? Waarom is dat, en wat betekent 'gestandaardiseerd' eigenlijk?


11
2017-10-08 04:54


oorsprong


antwoorden:


"Gestandaardiseerd" betekent dat de taal een formele, goedgekeurde standaard heeft, meestal geschreven door ISO of ANSI of ECMA. Veel moderne open-source talen, zoals Python, Perl en Ruby, zijn niet formeel gestandaardiseerd door een externe instantie en hebben in plaats daarvan een de-facto standaard: ongeacht de oorspronkelijke werkimplementatie.

De voordelen van het standaardiseren van een taal zijn a) u weet dat de taal niet willekeurig op u zal veranderen, b) als u uw eigen compiler / interpreter voor de taal wilt schrijven, heeft u een heel duidelijk document dat u vertelt welk gedrag alles zou moeten doen, in plaats van dat gedrag zelf te testen in de oorspronkelijke implementatie. Hierdoor veranderen gestandaardiseerde talen langzaam en hebben ze vaak meerdere grote implementaties.

Een taal hoeft niet echt gestandaardiseerd te worden om nuttig te zijn. De meeste niet-standaard talen maken niet zomaar willekeurige, onveranderlijke wijzigingen zonder reden (en als dat wel zo is, duurt het tien jaar voordat ze hebben besloten hoest * Perl6 * hoest *), en niet-standaard talen kunnen veel sneller nieuwe, nieuwe experimentele functies toevoegen (en meer draagbaar) dan gestandaardiseerde talen.

Een paar gestandaardiseerde talen:

  • C
  • C ++
  • Common Lisp
  • Regeling (?)
  • JavaScript (ECMAScript)
  • C #
  • Robijn

Niet-standaard talen:

  • Perl
  • Python
  • PHP
  • Doelstelling C

Een volledige lijst is ingeschakeld Wikipedia.


31
2017-10-08 05:04



Er zijn "standaarden" en er zijn "standaarden".

De meeste mensen bedoelen meestal dat een norm wordt doorgegeven door een normschrijvende organisatie: ISO, ECMA, EIA, enz. Advocaten noemen deze De Jure-normen. Er is de kracht van de wet.

Verder zijn er "De Facto Standards".

Sommige mensen corrumperen het woord ook door "Industry Standard" of "naam van de leverancier Standaard. "Dit is gewoon zinloze marketingruis.

Een de facto standaard is iets dat in de praktijk gestandaardiseerd is (omdat iedereen het doet en het ermee eens is dat ze het op die manier doen), maar het is niet ondersteund door een aantal normen organisatie.

Python heeft een De Facto Standard, geen De Jure-standaard.


4
2017-10-08 10:51



Gestandaardiseerd betekent dat er een specificatie voor de taal bestaat (een "standaard"). Java heeft bijvoorbeeld een specificatie. Perl 5 niet (de broncode is de "standaard"), maar Perl 6 wel.

Zien Is er een Python-taalspecificatie?


2
2017-10-08 04:57