Hoomla

“Symmetry is a complexity reducing concept […]; seek it everywhere.”

Lisp i F#

clock juli 28, 2009 08:05 by author kullbom

F# är bra till mycket och duger alls inte bara till att skriva kompilatorer för pi-calculus i...

Enligt Tim Robinson kan man även skriva en Lisp-kompilator:

Intressant läsning även om jag personligen blir skeptisk varje gång lex och yacc nämns. Kanske har jag inte helt greppat problematiken men jag har svårt att acceptera att man skulle behöva något annat än "vanliga" parser-kombinatorer som de i FParsec.

Just nu värderat 3.0 av 1 människor

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


REPL och MacOSX igen

clock augusti 9, 2008 10:47 by author kullbom

Efter min förra post om REPL under MacOSX har jag provat ytterligare ett par alternativ och nu kommit fram till att TextMate nog trots allt är det bästa.

Med hjälp av följande kommando-script bundet till Enter-tangenten (och Input satt till Selected Text or Line) har jag precis det REPL-stöd jag vill ha.

EXPR="$(cat | sed 's/\\/\\\\/g' | sed 's/\"/\\\"/g')" 

export SHELL_NAME=${SHELL_NAME:="FSharp Interactive"}
export SHELL_INTERPRETER=${SHELL_INTERPRETER:="fsi"}

osascript << END
tell application "iTerm"
    if (count (every session of every terminal)) = 0 then
        make new terminal
    end if
    tell the first terminal
        if not (exists session named "$SHELL_NAME") then
            launch session "Default"
            tell the current session
                set name to "$SHELL_NAME"
                write text "$SHELL_INTERPRETER"
            end tell
        end if
        select session named "$SHELL_NAME"
        tell session named "$SHELL_NAME"
            write text "$EXPR" & ";;"
        end tell
    end tell
end tell
END

Det här scriptet är skrivet för F Sharp och dess “F# Interactive” (fsi) med kan med några små justeringar lätt användas för Haskell (ghci), OCaml (ocaml), Lisp, Scala eller liknande.

Edit: Jag använder en något modifierad version av den “F# language grammar” som återfinns i SVN-repot för TextMate bundles.

Just nu värderat 5.0 av 1 människor

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


BitC - LISP-syntax under ML-semantik?

clock juli 28, 2008 10:15 by author kullbom

En gammal kollega sa en gång att hans dröm var ett språk som kombinerade LISP-syntax (S-expressions) med semantiken från ML och sedan dess har jag vuxit in i att till stor del dela den drömmen.

Sedan tidigare har jag känt till två “projekt” som relaterar till nämnda dröm: Qi och Sexplib för Camlp4.

Idag blev jag informerad om att Jonathan Shapiro, Swaroop Sridhar och Scott Doerrie från Johns Hopkins University håller på med The BitC Programming Language (Specification: HTML eller PDF) som delar nämnda egenskaper.

“It seeks to combine the flexibility, safety, and richness of Standard ML or Haskell with the low-level expressiveness of C.” (... och har syntax i form av s-expressions)
BitC är relaterat till The Coyotos Secure Operating System men kompilerar till vanlig C-kod. Vidare så skrivs det på BitC-sidan att “25 March 2008: Work begins on LLVM back end.” vilket ger mig ett ypperligt tillfälle att uppmärksamma just The LLVM Compiler Infrastructure Project (LLVM = Low Level Virtual Machine) och The High Level Virtual Machine (HLVM). (Jag passar på att länka till Parrot Virtual Machine när jag nu ändå är igång...)

Bli den första att värdera denna post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Sommarläsning

clock juli 27, 2008 10:15 by author kullbom

Bli den första att värdera denna post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


CLisp i .Net 1.1 SDK

clock augusti 31, 2007 12:46 by author kullbom
Mycket riktigt ingår det något vid namn CLisp i .Net 1.1 SDK. Ladda ner och installera .NET Framework SDK Version 1.1 och kika därefter i mappen
C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Clisp
.

Bli den första att värdera denna post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Tillbaka till LISP

clock augusti 31, 2007 01:44 by author kullbom
Det skrivs mycket om hur C# - speciellt v3.0 och LINQ - går mot att bli mer och mer funktionellt orienterat. En naturligt del i detta är att olika konstruktioner och koncept lånas från äldre funktionella språk som LISP/Scheme. I det sammanhanget kan det vara intressant att nämna några av de olika .Net-projekt som i olika grad går ut på att implementera just LISP för CLR.Det har också påståtts att en version av CLisp skulle ha följt med Visual Studio 2003(?) som ett exempelprojekt. Jag har inte själv lyckats verifiera detta påstående men det låter ju spännande.För den som råkar vara intresserad av även andra språk för CLR finns en liten sammanställning på Brian Ritchie's dotnetpowered.com.

Bli den första att värdera denna post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5