[Question]
  [
Our task is to, for each letter of the (English) alphabet, write a program that prints the alphabet, in a language whose *name* starts with that letter.
**Input:** *none*
**Output:**
```
abcdefghijklmnopqrstuvwxyz
```
*uppercase and trailing newline optional*
**Rules**:
* The scoring metric is the length of the programming language *name*, **plus** the length of the code. Hence, C will be assessed a "penalty" of 1, while GolfScript will be assessed a penalty of 10.
* One language/implementation per answer. Multiple answers are encouraged.
* If a programming language name's first letter is not an English letter, it should not be coerced into one. It will be treated as a separate letter (meaning less competition).
* No answer will be accepted until every English letter has a solution.
---
Current rankings:
* [**A**​PL](https://codegolf.stackexchange.com/a/83274): 5
* [**B**​rachylog](https://codegolf.stackexchange.com/a/170986): 11
* [**C**​anvas](https://codegolf.stackexchange.com/a/196625): 7
* [**D**​OS](https://codegolf.stackexchange.com/a/206395): 13
* [**E**​so2D](https://codegolf.stackexchange.com/a/215811): 20
* [**F**​ish](https://codegolf.stackexchange.com/a/193865): 20
* [**G**​aia](https://codegolf.stackexchange.com/a/196629): 6
* [**H**​usk](https://codegolf.stackexchange.com/a/206362): 8
* [**I**​PEL](https://codegolf.stackexchange.com/a/206366): 23
* [**J**​apt](https://codegolf.stackexchange.com/a/196632): 6
* [**K**eg​](https://codegolf.stackexchange.com/a/195077): 6
* [**L**​y](https://codegolf.stackexchange.com/a/206363/92069): 13
* [**M**​athGolf](https://codegolf.stackexchange.com/a/196630/85052): 9
* [**N**​i](https://codegolf.stackexchange.com/a/206486/92069): 15
* [**O**​wl](https://codegolf.stackexchange.com/a/2110): 14
* [**P**​ip](https://codegolf.stackexchange.com/a/196628/85052): 4
* [**Q**​uadR](https://codegolf.stackexchange.com/a/214902/91569): 31
* [**R**​uby](https://codegolf.stackexchange.com/a/2079): 17
* [**S**​tax](https://codegolf.stackexchange.com/a/196627/85052): 6
* [**T**​hunno](https://codegolf.stackexchange.com/a/257190/114446): 8
* [**U**​nix Shell](https://codegolf.stackexchange.com/a/34637): 31
* [**V**​](https://codegolf.stackexchange.com/a/196631/85052): 4
* [**W**​](https://codegolf.stackexchange.com/a/206514/92069): 4
* [**X**​Jam](https://codegolf.stackexchange.com/a/215801): 10
* [**Y**​orick](https://codegolf.stackexchange.com/a/154226): 36
* [**Z**​80Golf](https://codegolf.stackexchange.com/a/171015): 16
Tell me if I'm missing anybody.
## Automatic leaderboard (experimental)
```
var QUESTION_ID=2078;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&r.indexOf('non-competing')===-1&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],lang:/<a/.test(a[1])?jQuery(a[1]).text():a[1],link:s.share_link})}),e.sort(function(e,s){var d=e.lang[0].toLowerCase(),a=s.lang[0].toLowerCase();return(d>a)-(d<a)||e.size-s.size});var s={},a=null,n="A";e.forEach(function(e){n=e.lang[0].toUpperCase(),a=e.size;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+" is for").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.lang,p=o[0].toUpperCase();s[p]=s[p]||{language:e.language,lang:e.lang,letter:p,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return(e.letter>s.letter)-(e.letter<s.letter)});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.language).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),jQuery("#languages").append(jQuery(i))}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*(?:<[^>]+>)?(?:[^]+?for )?((?:<a[^>]*?>)?(?:(?! [(=→-])[^\n,:])*[^\s,:])(?:[,:]| [(=→-]).*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
```
```
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} /* font fix */ body {font-family: Arial,"Helvetica Neue",Helvetica,sans-serif;} /* #language-list x-pos fix */ #answer-list {margin-right: 200px;}
```
```
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Winners by Letter</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <h2>Everything</h2> <table class="answer-list"> <thead> <tr><td></td><td>Language</td><td>Author</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
```
  
[Answer]
# P is (actually) for [Piet](http://www.dangermouse.net/esoteric/piet.html) - 57 codels
Large version (codel size = 6)
![p is for piet - big](https://i.stack.imgur.com/juvC4.png)
Small version (codel size = 1)
![p is for piet - small](https://i.stack.imgur.com/l1dXU.png)
Tested with Erik's piet interpreter [`npiet`](http://www.bertnase.de/npiet/) and developed with [Piet Creator](https://github.com/Ramblurr/PietCreator/wiki).
**Edit**: Here is a "trace" version (generated with `npiet -tpf`) so you can see how it works.
Execution starts in the top left and goes around the border clockwise. The top edge and right edge are setup (calculating the value of `a` (97) takes quite a few codels). The loop starts on the bottom edge and goes to the left edge. When the value of `z` is reached the program turns right into the cross section under the first `P` and terminates.
[![](https://i.stack.imgur.com/MM04L.png)](https://i.stack.imgur.com/MM04L.png)
Click the image to enlarge and see details
[Answer]
## P is for Perl, 10 characters -> Score: 14
```
print a..z
```
[Answer]
## P is for Python 2, 29 chars -> Score: 35
Every few years I come here with an update. See below.
Also I'm proposing the addition of range expressions to Python [over here](https://discuss.python.org/t/pep-204-range-literals-getting-closure/25026) with [demo code here](https://github.com/jbvsmo/cpython/pull/1). That would allow us to make an even more compact answer.
## Mar 2023: 29 chars
I realize the question says the output can be uppercase which allows us to shave off another char. It is quite ridiculous I didn't see that before.
```
print bytearray(range(65,91))
```
## Nov 2019: 30 chars
I did it, after 8 years I realized there is a shorter way in python 2!
```
print bytearray(range(97,123))
```
Previous code that was as big as trivial print:
## Jul 2011: 33 chars
```
print'%c'*26%tuple(range(97,123))
print'abcdefghijklmnopqrstuvwxyz'
```
Edit: Check out the breakthrough with Python 3 where I also found a solution smaller than trivial print: <https://codegolf.stackexchange.com/a/195165/2212>
[Answer]
# K is for [K](https://github.com/kevinlawler/kona), 12 characters -> Score: 13
```
`0:_ci97+!26
```
[Answer]
## Y is for [Yoix](http://www2.research.att.com/%7Eyoix/latest/index.html), 44 characters → Score: 48
```
int x;for(;++x<27;)yoix.stdio.putchar(96+x);
```
[Answer]
## W is for Whitespace, 72 characters -> Score: 82
![enter image description here](https://i.stack.imgur.com/e2NM9.png)
```
[Sp][Sp][Sp][Tab][Tab][Sp][Sp][Sp][Sp][Tab][LF][LF][Sp][Sp][Tab][Tab][LF][Sp][LF][Sp][Tab][LF][Sp][Sp][Sp][Sp][Sp][Tab][LF][Tab][Sp][Sp][Sp][Sp][LF][Sp][Sp][Sp][Sp][Tab][Tab][Tab][Tab][Sp][Tab][Tab][LF][Tab][Sp][Sp][Tab][LF][Tab][Sp][Sp][Sp][LF][LF][Sp][LF][Tab][Tab][LF][LF][Sp][Sp][Sp][Sp][LF][LF][LF][LF]
```
I spent ages getting this stupid thing to work last night and then found that whitespace doesn't show as code here! Then, while I was sulking, my Internet connection died. So, I'm posting it now just so I didn't waste an hour of my life last night getting it to work.
[Answer]
## A is for APL, ~~14~~ 11 chars/bytes\* → score 14
```
⎕UCS 96+⍳26
```
This works at least in Dyalog and [Nars2000](http://www.nars2000.org/).
---
\* APL can be written in its own (legacy) single-byte charset that maps APL symbols to the upper 128 byte values. Therefore, for the purpose of scoring, a program of N chars *that only uses ASCII characters and APL symbols* can be considered to be N bytes long.
[Answer]
## G is for Golfscript, 8 characters -> Score: 18
```
123,97>+
```
[Answer]
## R is for R, 19 → Score: 20
```
cat(letters,sep="")
```
[Answer]
## R is for Ruby, 13 characters -> Score: 17
A Ruby 1.9 solution [Matma Rex](https://codegolf.stackexchange.com/users/979/matma-rex) came up with:
```
print *?a..?z
```
My original Ruby 1.8 solution (15 characters -> Score: 19):
```
$><<[*'a'..'z']
```
[Answer]
## F is for Fish (><>), 19 chars -> Score: 23
Because it's a damn beautiful language!
```
30"`"1+::o&p&"y"(?;
```
[Answer]
# D is for dc, 17 characters → Score: 19
```
97[dP1+dBD>x]dsxx
```
[Answer]
# O is for [Owl](http://digilander.libero.it/tonibinhome/owl/), 11 characters -> Score: 14
```
a[%)1+%z>]!
```
[Answer]
## S is for Scala, 16 chars => score 21
```
'a'to'z'mkString
```
18 chars => score 23
```
'a'to'z'mkString""
```
22 chars => score 27 
```
('a'to'z')map(print _)
```
[Answer]
# B is for Befunge → 18 characters
```
"a"::,1+10p"y"`#@_
```
[Answer]
## P is for Python 2, 42 characters → Score: 48
```
import string
print string.ascii_lowercase
```
[Answer]
## C is for C, ~~36~~ 35 characters → Score: 36
```
main(a){for(;putchar(a+++64)-90;);}
```
[Answer]
## L is for Logo, 26 characters → Score: 30
```
for[i 97 122][type char i]
```
[Answer]
## P is for Python 2, 41 characters → Score: 47
```
print''.join(chr(i+97)for i in range(26))
```
[Answer]
## P is for PowerShell, 15 characters → Score: 25
```
-join('a'..'z')
```
[Answer]
## B is for [bc](http://www.manpagez.com/man/1/bc/) - 2 + 28 = 30
```
"abcdefghijklmnopqrstuvwxyz"
```
[Answer]
# J is for J, 14 characters -> Score: 15
```
echo u:97+i.26
```
[Answer]
## T is for Thue, 35 characters → Score: 39
```
0::=~abcdefghijklmnopqrstuvwxyz
::=
0
```
[Answer]
## A is for AppleScript, 41 -> Score: 52
```
display alert"abcdefghijklmnopqrstuvwxyz"
```
[Answer]
## M for Matlab, 13 chars, Score 19
```
disp('a':'z')
```
M for Matlab, 18 chars, Score 24
```
disp(char(97:122))
```
[Answer]
# B is for BrainF\*\*\*, 38 + 9 = 47
```
++++[>++++++<-]>[->+>++++<<]>++[->+.<]
```
Can be reduced to **31+9 = 40**, if cells wrap around at 256:
```
++[>+>++<<+++++]>----->[<.+>++]
```
[Answer]
## B is for Bash: 4 + 16 = 20
```
printf %s {a..z}
```
or 15 with just:
```
echo {a..z}
```
if output of the form `a b c ...` is allowed (as seen in many other answers).
[Answer]
## I is for [Inform 6](http://en.wikipedia.org/wiki/Inform#Inform_6), 41 + 6 = 47
```
[Main i;for(i=26:i--:)print(char)'z'-i;];
```
[Answer]
## U is for [Unlambda](http://www.madore.org/%7Edavid/programs/unlambda/) - 8 + 79 = 87
```
``````````````````````````.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.zr
```
[Answer]
## H is for Haskell, 21 characters → Score: 28
```
main=putStr['a'..'z']
```
]