# The alphabet in programming languages

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.
• The programming language should have existed prior to the writing of this post, on this eighteenth of April 2011.
• 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:

Tell me if I'm missing anybody.

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>

• Are we allowed to print junk to stderr? – Peter Taylor Apr 18 '11 at 22:02
• @Peter Taylor: Go nuts. To answer your question, yes, printing junk to stderr is fine (as long as stdout is correct). – Joey Adams Apr 18 '11 at 22:05
• Is it OK to print the alphabet IN BIG LETTERS? – dorukayhan Jun 21 '16 at 18:25
• Is *0*5AB1E the same as *o*sabie :P? – Magic Octopus Urn Jun 6 at 14:58
• @MagicOctopusUrn Wouldn't matter due to this rule: "The programming language should have existed prior to the writing of this post, on this eighteenth of April 2011." – Kevin Cruijssen Sep 26 at 12:35

# Tcl - 31 + 3 = 34

puts abcdefghijklmnopqrstuvwxyz

• My shortest iterative is longer, 45 :time {puts [format %c [expr [incr i]+96]]} 26 – sergiol Jul 21 '17 at 18:41

C++, 32 + 3penalty = 35

I could not find C++. So this is my option for it:

char a=96;while(a++<122)cout<<a;


the output is:

abcdefghijklmnopqrstuvwxyz


PS. It's my first golf, pls comment if i did something wrong

## P is for PHP - 33 characters - Score: 36

echo implode("",range("a", "z"));


## C++: 32+3 = 35

char c=96;while(c++<122)cout<<c;

• I almost want to score this as 32, given that your code contains "c++". Alas, I didn't put this in the original rules. – Joey Adams Jul 15 '14 at 20:44
• @JoeyAdams You're right, I corrected it :) – padawan Jul 15 '14 at 21:00

# U is for Unix Shell, 21 Characters → Score: 31

echo {a..z}|tr -d " "


# V is for VBScript, 40 Characters → Score: 48

for i=97 to 122:a=a+chr(i):next:MsgBox a


# P is, in fact, for PHP - 23 chars / 27 score

<?=join('',range(a,z));


## C is for Clojure - (39 or 53) + 7 = 46 or 60

No, it doesn't stand for C. In Clojure, all functions form closures, so I would argue this is a complete answer, in 39 bytes.

(doseq[c(range 97 123)](print(char c)))


But if you really want it with the main function, 53 bytes.

(defn -main[](doseq[c(range 97 123)](print(char c))))


But, this isn't a Clojuric way to solve this problem. Let's try something simpler (could be golfed for 4 bytes).

(print (apply str (map char (range 97 123))))


Much better, isn't it?

# N is for Nu, 35 Characters → Score: 37

(puts 'abcdefghijklmnopqrstuvwxyz')


# N is for Nim, 31 → Score: 34

for x in'a'..'z':stdout.write x


# Mouse, 26 + 5 = 31

97a:(a.123<^a.&DUP !'1+a:)


Which outputs:

abcdefghijklmnopqrstuvwxyz


Note the lame way would be:

"abcdefghijklmnopqrstuvwxyz"


Which gets printed implicitly immediately (as string literals do, unfortunately), but it's 28 bytes.

# J is for Java - score: 84 characters + 4 = 88

interface a{static void main(String[]A){for(char c=65;c<91;System.out.print(c++));}}


This prints ABCDEFGHIJKLMNOPQRSTUVWXYZ instead of abcdefghijklmnopqrstuvwxyz. If it's disallowed, one can simply set c to 97 (a) and loop until it reaches 123 ({) at the cost of one extra byte:

interface a{static void main(String[]A){for(char c=97;c<123;System.out.print(c++));}}


V for VBA: 60

Sub VforVBA()
For i=1 To 26: a=a & Chr(64+i): Next: Debug.Print a
End Sub

• Can you remove any of the spaces between the tokens? E.g. For i=1To26:a=a&Chr(64+i):Next:Debug.Print a – Joey Adams Jul 15 '14 at 17:44
• @JoeyAdams edited as suggest – Alex Jul 15 '14 at 22:00
• Did you test this? Is "Fori" treated as "For i"? – Joey Adams Jul 16 '14 at 13:52
• @joeyAdams Yea you're correct, indeed the 1To26 and other parts won't work as well. I have changed it back to origin answer – Alex Jul 16 '14 at 14:08
• @Alex I think you can remove some spaces (i = 1, : a = a & Chr(64 + i), : Next: Debug) – Erik the Outgolfer Aug 3 '16 at 9:54

## S is for seed7, 137114 78 characters → Score: 83

const proc: main is func begin writeln("abcdefghijklmnopqrstuvwxyz");end func;


# F is for Funge → 19 chars + 5 = 24

'\#;1+::,"@9"+\#@_;


Something that makes this unique is that it doesn't contain a single letter of the alphabet! Hence why I didn't shorten it by replacing "@9"+ with 'y. I'll take the points hit for it.

Try it with my interpreter here: BefungeSharp.

# L is for Lua, 49 bytes → Score: 52

Previous answer for Lua had each letter printed on a new line. All on one line:

s=""for i=97,122 do s=s..("").char(i)end print(s)


Try it online!

# P is for Powershell, 19 + 10 = 29

Because I'm bored at the moment, I hope you don't mind if I put up a quick PS that wouldn't have contended anyways...

97..122|%{[char]$_}  Simple char typecasting. You can shave off one byte by doing the alphabet in all caps. 65..90|%{[char]$_}


# Python, 36 + 6 = 42

print''.join(map(chr,range(97,123)))


Not the shortest...

## R, 26 bytes (score 27)

paste(letters,collapse="")


Output:

[1] "abcdefghijklmnopqrstuvwxyz"


# Z is for Zsh, 21+3 → 24 bytes

echo {a..z}|tr -d ' '


Try It Online!

# B is for Bash, 11 -> 15 24

echo {a..z}

echo {a..z}|tr -d \
^
space

• Already posted by Eelvex, but sadly it is not valid, because not produces the exact required output. – manatwork Apr 27 '16 at 15:17
• Don't take it the wrong way. Keep trying, keep posting. If you found this independently, you're very good. In the future, try answering less popular challenges. :-) – wizzwizz4 Apr 28 '16 at 16:59
• ETHproductions, done. – Scotow Jan 27 '18 at 23:24

# S is for SmileBASIC, 39 37 bytes

FOR I=65TO 90?CHR$(I);:NEXT  • I do not believe you have properly read the scoring rules for this challenge. Your score is the length of your code plus the length of the language name. – Pavel Feb 3 '17 at 6:25 • Fixed, sorry. (padding) – snail_ Feb 3 '17 at 13:49 • You can save 2 characters by adding 65 to the start/end of the loop. – 12Me21 Feb 3 '17 at 13:58 ## S is for SMBF, 10 chars -> Score: 14 SMBF stands for Self-modifying Brainf***, and both names are used interchangeably. The original interpreters were named smbf.c and smbf.rb. \x1a is a hex literal (a single non-printable ASCII character) for the decimal number 26. <[-<.+>]a\x1a  The \x1a is used as a loop counter. a is printed and incremented each time. # R is for R, 17 bytes Score -> 18 intToUtf8(97:122)  Try it online! ## M is for M, 20 characters → Score: 21 let s={"a".."z"}in s  # Z is for Z80Golf, 9 bytes + 7 = 16 00000000: 3e61 061a ff3c 10fc 76 >a...<..v  Try it online! According to the Web Archive, Z80Golf code golf machine was created (at least) in December 2007. ### Disassembly start: ld a, 97 ; the char to print ld b, 26 ; loop count loop: rst$38   ; 1-byte alias for putchar
inc a
djnz loop ; decrement b and jump to loop if nonzero
halt      ; end program


# B is for Brachylog, 2 bytes → Score:11

(not competing though I guess)

Ạẉ


Try it online!

• According to Github, the initial commit to the repository linked in your answer was in 2015. Unless Brachylog existed as a language in 2011, this answer is invalid. – pppery Sep 22 at 18:38

# S is for Swift, 76 characters -> Score: 81

var s=""
for i in 97...122{s.append((Character(UnicodeScalar(i))))}
print(s)

• Isn't it easier to just print a string containing the alphabet? – acrolith Oct 21 '16 at 16:41
• Of course, but that just wouldn't be as fun – heratyian Oct 21 '16 at 17:57
• my_string could be reduced to one letter. – pppery Sep 22 at 18:41
• good call @pppery – heratyian Sep 23 at 17:27
• You should update the bytecount after golfing your answer. – pppery Sep 23 at 19:05

# I is for Io, 31 characters -> Score: 33

for($,65,90,$asCharacter print)


# F is for Fish, 16 bytes; score 20

"a"r:o1+:"{"=?;r