Software Open Access

Polite Smalltalk - An Implementation

Kurš, Jan; Lungu, Mircea; Nierstrasz, Oscar; Steinmann, Thomas


MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="http://www.loc.gov/MARC21/slim">
  <leader>00000nmm##2200000uu#4500</leader>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="u">https://creativecommons.org/publicdomain/zero/1.0/</subfield>
    <subfield code="a">Creative Commons Zero - CC0 1.0</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2016-09-05</subfield>
  </datafield>
  <controlfield tag="005">20170906070835.0</controlfield>
  <controlfield tag="001">61578</controlfield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">software</subfield>
    <subfield code="o">oai:zenodo.org:61578</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;Polite Smalltalk is a programming language that allows programmers to use sentence case identifiers -- a notation for embedding spaces in identifiers. We hope &amp;nbsp;that a syntax like that of Polite will encourage developers to write more readable code. Even the smallest increase in code readability is to be desired since software developers spend the largest part of their time reading code rather than writing it.&lt;/p&gt;

&lt;p&gt;In order to replace identifiers with sentences, we need to make sure that our language grammar allows the code to be parsed unambiguously. This is why the implementation published here starts from a Smalltalk-like syntax defined with parsing expression grammars and modifies it to add two desired features:&lt;br /&gt;
1) sentence case identifiers, and&lt;br /&gt;
2) indentation based method definitions.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Polite is implemented on top of Pharo Smalltalk and PetitParser is used to define its grammar.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;The uploaded files represent a Pharo image together with three Pharo virtual machines for the dominant operating systems. To open the image execute the corresponding virtual machine and load Polite.image in it. You will need to have the PharoV50.sources (the fifth file) in the same directory as the image.&lt;/p&gt;

&lt;p&gt;Inside the image, the Polite implementation can be found in the PoliteSmalltalk package. The package contains more than 450 passing unit tests. The image also contains a small role playing game simulator that illustrates the syntax of Polite.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;For the latest news on Polite Smalltalk, check out http://scg.unibe.ch/research/Polite and https://github.com/mircealungu/polite/&lt;/p&gt;</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">University of Groningen</subfield>
    <subfield code="a">Lungu, Mircea</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">University of Bern</subfield>
    <subfield code="a">Nierstrasz, Oscar</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">University of Bern</subfield>
    <subfield code="a">Steinmann, Thomas</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">3534156</subfield>
    <subfield code="z">md5:486bab416c08768a2fdfd668f7ef27f6</subfield>
    <subfield code="u">https://zenodo.org/record/61578/files/Pharo5.0-osx.zip</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">32213924</subfield>
    <subfield code="z">md5:9c77ab2274979b0f43bb4d7d40d8097e</subfield>
    <subfield code="u">https://zenodo.org/record/61578/files/PharoV50.sources</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">47711568</subfield>
    <subfield code="z">md5:0fbe289044c50c0873ec4fef9868e5a2</subfield>
    <subfield code="u">https://zenodo.org/record/61578/files/Polite.image</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">29464302</subfield>
    <subfield code="z">md5:49296a59fd94e2c8bb718225163f477a</subfield>
    <subfield code="u">https://zenodo.org/record/61578/files/Pharo5.0-win.zip</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">34311793</subfield>
    <subfield code="z">md5:388da646d5835dd134d478391a59bac3</subfield>
    <subfield code="u">https://zenodo.org/record/61578/files/Pharo5.0-linux.zip</subfield>
  </datafield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  </datafield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">software</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">University of Bern</subfield>
    <subfield code="a">Kurš, Jan</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">programming languages</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">human centered language design</subfield>
  </datafield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.5281/zenodo.61578</subfield>
    <subfield code="2">doi</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">Polite Smalltalk - An Implementation</subfield>
  </datafield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2">opendefinition.org</subfield>
  </datafield>
</record>

Share

Cite as