scene.org File Archive

File download

<root>­/­parties­/­2011­/­atparty11­/­wild/concrete_perl.zip

File size:
4 299 bytes (4.20K)
File date:
2016-01-11 05:45:02
Download count:
all-time: 73

Screenshot (by Demozoo)

Screenshot

Preview

  • all_the_names_of_god.pl 34B
  • alphabet_expanding.pl 34B
  • ascii_hegemony.pl 34B
  • letterformed_terrain.pl 34B
  • read_me.txt 2.86K

file_id.diz

Concrete Perl
A set of four concrete poems realized as 32-character Perl programs, by Nick Montfort

 h            d d     k x  v  d r k y  p  s b a  b  a  n  i  k  d   u  u  v   r  c q  i  e  z   j s s  v h   t l  i  r k k n  k       n n     m              z b    q   b   k x  m  d u  z f  s  g p u z v y       v m  f   s   i  u  p  p z   r n t  k f   b h v  q l  x w h x  f  x    c i w     v f  k h   l  a i      o q  s z n z  u n c l    w      d     a  d a  m j  b e   m  n b q o u o e  n   s    r b o j     b  q q t q s   f n i  f     u  l 

*All the Names of God
*Alphabet Expanding
*ASCII Hegemony
*Letterformed Terrain

You can download the linked Perl files and/or simply copy and paste the following four lines, which correspond to the four titles above:

All the Names of God:
perl -e '{print"a"x++$...$"x$.,$,=_;redo}'
Alphabet Expanding:
perl -e '{print$,=$"x($.+=.01),a..z;redo}'
ASCII Hegemony:
perl -e '{print"  ".chr for 32..126;redo}'
Letterformed Terrain:
perl -e '{print$",$_=(a..z)[rand$=];redo}'
These programs have been transliterated to Cyrillic (and Natalia Fedorova has translated their titles to Russian). Perl's greater facilty with the Latin alphabet made it impossible to fit three of these four programs into 32 characters:

??? ????? ????:
perl -e 'sub n{for(1072..1103){if($_[1]){push@_,n($_[0].chr,$_[1]-1)}else{print$_[0].chr._}}return @_}{binmode STDOUT,utf8;n("",$.++);redo}'
?????????? ????????:
perl -e '{binmode STDOUT,utf8;print$"x($.+=.01),chr for 1072..1103;redo}'
Gegemonia ASCII:
perl -e '{print"  ".chr for 32..126;redo}'
????????? ???????:
perl -e '{binmode STDOUT,utf8;print$",chr((1072..1103)[rand$=]);redo}'
For purposes of determining the platform precisely and counting characters, the rules of Perl Golf are used. These rules, for instance, do not count the (optional) newline at the end of a one-line program. The Concrete Perl programs work on all standard versions of Perl 5.8.0 and have been verified as 32 characters long using a count program.

These programs are also written to work and to be visually pleasing on terminal windows (or terminals) of any geometry.

"All the Names of God" should crash fairly soon after you start it, once it tries to pre-compute and store in memory all permutations of six letters. "Alphabet Expanding" should also crash, in theory, at some point in the distant future.

Concrete Perl was released onto the demoscene and discussed by me for the first time in my talk “Beyond Data-Driven Poetry: ppg256 and Concrete Perl,” on the panel “Literary Practice and the Digital Humanities, Redux: Data as/and Poetry,” Digital Humanities 2011, Stanford, June 22, 2011.

I have printed the four programs/poems on a dot matrix printer on business cards. I am handing these out to interested readers. I have added one of them them to the “Interactive Poetry Wall” at Stanford University’s “Coho” coffeehouse.