Pygments highlights CBM BASIC & ca65 assembler sources

Since version 1.6 the syntax highlighter Pygments has support for CBM BASIC V2 and assembler sources in ca65 format. ca65 is the macro assembler of the cc65 C cross compiler package.

The language list does not have entries for them, but the lexer list in the documentation knows about Ca65Lexer in the lexers for assembly languages section and CbmBasicV2Lexer in the lexers for other languages section.

Examples

Let’s see the highlighter in action. Both examples solve assignment 3 of the HP Codewars 2012. It is about interpreting a sequence of given Reversi moves and printing the resulting board state.

Example of BASIC…

 10 cp$="w":op$="b":dimb$(7,7):fori=0to7:forj=0to7:b$(i,j)=".":next:next
 20 b$(3,3)="w":b$(4,3)="b":b$(3,4)="b":b$(4,4)="w":dimtx(7),ty(7):goto140
 30 inputl$:ifl$="end"then end
 40 y=asc(left$(l$,1))-asc("a"):x=val(right$(l$,1))-1:b$(y,x)=cp$
 50 forxd=-1to1:foryd=-1to1:if(xd or yd)=0then130
 60 xt=x:yt=y:tc=0
 70 xt=xt+xd:yt=yt+yd
 80 ifxt<0orxt>7oryt<0oryt>7thentc=0:goto120
 90 t$=b$(yt,xt):ift$<>op$then110
100 tx(tc)=xt:ty(tc)=yt:tc=tc+1:goto70
110 ift$<>cp$thentc=0
120 iftc>0then fori=0totc-1:b$(ty(i),tx(i))=cp$:next
130 next:next:t$=cp$:cp$=op$:op$=t$
140 fori=0to7:forj=0to7:printb$(j,i);:next:print:next:print:goto30

Read more...

Python – Das umfassende Handbuch

Ein kleiner “rant” über Python - Das umfassende Handbuch von GalileoComputing.

Anmerkung

Dieser Text bezieht sich auf das OpenBook, also die Version zu Python 2.x. Ob sich in der aktuellen Buchauflage, die Python 3 behandelt, an den angeführten Kritikpunkten etwas geändert hat, kann ich nicht sagen.

Vielleicht ist es ein wenig unfair ein Buch nur nach einem Kapitel zu beurteilen, aber gerade das Thema objektorientierte Programmierung (OOP) bereitet vielen Einsteigern Probleme und in diesem Kapitel versagt das Buch dem Leser pythonisches Programmieren näher zu bringen. Wer Programme im Stil dieses Kapitels abfasst, schwimmt innerhalb der Python-Gemeinschaft gegen den Strom. Teilweise ist das gezeigte nicht nur kein idiomatisches Python, sondern schlicht fehlerhaft. Das Buch, oder zumindest das OOP-Kapitel 12 Objektorientierung, hinterlässt den Eindruck, dass die Autoren Peter Kaiser und Johannes Ernesti ein Thema suchten um Geld mit einem Buch zu verdienen, sich umschauten welche Sprache, zu der es noch relativ wenig deutschsprachige Bücher gibt, sich dazu eignen könnte, und einfach losgelegt haben Wissen und Stil von anderen Sprachen 1:1 auf Python zu übertragen.

Read more...

First Post

And here it is — the first post in my new blog. It is easter and I felt my website needs a little „resurrection”. ☺

Blogs are around for some time now, but I still have that old static website which evolves way too slow. To avoid going completely modern and web 2.0 crazy, this blog is a static one. Built with Tinkerer which is based on Python’s documentation tool Sphinx.

I am actually considering moving the content of the old website completely to the blog. Maybe the blog format encourages me to update more often.