Está viendo la página Spain versión del sitio.
Le gustaría cambiar a su sitio local?
17 MIN TIEMPO DE LECTURA

LISP

LISP - exploring the original AI language

Discover one of the first programming languages, which Mike Bedford realises couldn’t have been more different from its early stablemates.

Credit: www.gnu.org/software/gcl/

OUR EXPERT

Mike Bedford found that getting to grips with LISP was a completely new experience, but he’s not convinced he’ll be embracing it in the future, despite its obvious quirkiness.

We can’t trace its fortunes year on year, but according to the TIOBE Index, LISP was the third most commonly used language in 1988. Today it’s at position 29, and while that’s a substantial drop since its heyday, we don’t think it’s bad going for a 64-year-old language.

In the previous instalment in our series on classic programming languages, we examined I ALGOL, and this month we’re delving into another archaic language, LISP. However, the fact they both date back to the 1950s is about the only thing the two have in common; in most other respects they couldn’t be more different. In all probability, virtually all languages you’ve ever used are of the type referred to as imperative languages. LISP, on the other hand, is a declarative language. To put it simply, programming in an imperative language involves defining a set of operations that, when executed sequentially, provide the desired functionality. The fact that there’s an alternative might be surprising, but in a declarative language, the end result is defined, leaving the system to figure out how to achieve the goal.

The two approaches have been likened to the instructions provided with a piece of self-assembly furniture. In the imperative approach, the instructions comprise a detailed list of instructions; with the declarative method, you’re just shown a picture of the assembled furniture. In fact, this isn’t our first foray into declarative programming in recent months. In LXF293,we learned about Prolog, the language that almost vanished into obscurity in the 1980s before making a recent come-back, fuelled by the AI revolution.

No IDE here – the Clisp interpreter runs in a terminal window, which is as close as you’ll get to the teletype on which the original LISP implementation would have run.

Part four!

Don’t miss next issue, subscribe on page 16!

It’s becoming something of a tradition to show the computers on which our classic languages were launched, so here’s a photo of an IBM 704 mainframe, which was LISP’s first platform.

A declaration for LISP

We need to define LISP more accurately by saying that it’s not devoid of imperative features, and while that’s probably true of most declarative languages, LISP is more imperative than Prolog, for example. So, you could use LISP to write the sort of programs you’re familiar with, but that wouldn’t be making the best use of it, nor would it be a good language in which to write that imperative code.

A less formal definition is that it’s organised primarily around expressions and functions rather than statements and subroutines, though that takes us into the vagaries of semantics. Rather more helpful in pure functional languages, data flows through functions but has no separate existence of its own. But we have to point out that LISP isn’t pure in that respect.

Desbloquea este artículo y mucho más con
Puedes disfrutar:
Disfrute de esta edición al completo
Acceso instantáneo a más de 600 títulos
Miles de números atrasados
Sin contrato ni compromiso
Inténtalo €1.09
SUSCRÍBETE AHORA
30 días de acceso, luego sólo €11,99 / mes. Cancelación en cualquier momento. Sólo para nuevos abonados.


Más información
Pocketmags Plus
Pocketmags Plus

Este artículo es de...


View Issues
Linux Format
July 2023
VER EN TIENDA

Otros artículos de este número


Linux Format
Linux Format
Future Publishing Limited, Quay House, The Ambury, Bath,
WELCOME
MEET THE TEAM
We’re trying to keep things light this issue, so what’s your top tip for making something run faster or use less memory?
Keep it light
It’s fascinating to read the constant online forum
REGULARS AT A GLANCE
Newsdesk
THIS ISSUE: Art apps get touch-ups HDR Hackfest hopes KeePassXC passes test Ghostly chicken haunts AMD CPUs
It’s a wrap on HDR Hackfest
Exciting plans are in motion after the 2023 HDR Hackfest in Prague. Simon Ser shares his hopes.
KeePassXC passes audit
Independent security consultant was impressed.
NOT END OF LIFE
Joe Brockmeier is head of community, Percona.
KERNEL KUDOS
Muhammad Usama Anjum is a software developer at Collabora.
AMD haunted by spectral chicken
Kernel code is hen-pecked.
X.Org cleanup
Certain X.Org packages are retired and now archive-only.
Linus commits
Torvalds explains his changes to the Linux kernel.
Distro watch
What’s behind the free software sofa?
IN EURO WE TRUST
Italo Vignoli is one of founders of LibreOffice and The Document Foundation.
BUG OUT
Jon Masters is a kernel hacker who’s been
Kernel Watch
Jon Masters keeps up with all the latest happenings in the Linux kernel, so you don’t have to.
Answers
Got a burning question about open source or the kernel? Whatever your level, email it to answers@linuxformat.com your Intel branch prediction.
Mailserver
WRITE TO US Do you have a burning
HotPicks
THE BEST NEW OPEN SOURCE SOFTWARE ON THE PLANET
REVIEWS
Adata Legend 960 Max
Heatsinks make everything better, even Shane Downing.
Nvidia RTX 4070
Put that foreign holiday on hold, shouts Dave James, it’s time to invest in a shiny new graphics card instead!
Tiny Core Linux 14.0
Hold on tight as Nate Drake dares to embark on a white-knuckle ride on the stripped-down Tiny Core Linux!
Lubuntu 23.04
Nate Drake samples the lighter flavour of Ubuntu and has brought enough to share.
MidnightBSD 3.0.0
Nate Drake almost gets lost in the labyrinth that is MidnightBSD – a surprising open source alternative to Linux.
ROUNDUP
Kotlin Go Rust Python C++
The Verdict
Beginner coding languages
LIGHTSPEED UBUNTU
Fitness guru Jonni Bidwell is here to trim down your Ubuntu installations for summer. Not a single star jump required.
Pi USER
It’s artificial not human intelligence
The Pi Foundation outlines its approach to teaching AI to young learners.
Micropython 1.20
Supports the Pico!
More GPIO!
Same old SOC.
YOUR JAMMY EVENT HERE!
Les Pounder works with groups such as the
Ubuntu 23.04 Beta
Les Pounder loves the B-52s’ ‘Rock Lobster’ but will he find Ubuntu 23.04 Lunar Lobster also rocks or is just a bit rocky?
Creality CR-M4
“Look at the size of that thing!” cries Denise Bertacchi, but this 3D printer from Creality is certainly no moon.
Setting up virtual Python environments
Les Pounder enjoys dancing to Jamiroquai’s ‘Virtual Insanity’, but much prefers losing himself in Python’s virtual environments.
Eye spy with my little Pi API…
Tam Hanna uses the new Raspberry Pi Camera API and Microsoft Azure to create a machine that can classify things.
IN DEPTH
Join the Pod, Man!
Aaron Peters, unabashed container newbie, explores the Podman management application and why you might pick it over Docker.
Stay on top of your to-do list
If creating to-do lists were an Olympic event, Shashank Sharma would be a winner, seeing as how his just keep on growing.
Search desktop file contents instantly
Super-sleuth Nick Peers reveals how to find any file by searching its contents as well as filenames with the help of Recoll.
Climbing the ALPs
Piling survival essentials such as containers, Btrfs and KVM into his backpack, Matt Holder sets out to conquer OpenSUSE’s latest technological answer to immutable OSes.
TUTORIALS
Creating better documents in AsciiDoc
Making well-formatted documents is a snap for Karsten Günther because he’s learnt how to use a metaformat – and now you can, too.
Master Linux VM creation in Azure
Swallowing his pride, Stuart Burns tests out what Microsoft has to offer for Linux servers in its Azure cloud.
Kicking your music ’80s Amiga-style
Musical Michael Reed shows you how to create an Amigastyle tracker tune using modern open source Linux software.
CODING ACADEMY
Generate and then solve mazes with C
David Bolton demonstrates how a Raspberry Pi can create mazes in C/SDL and then solve them with animations.
Spice up your Python console applications
Matt Holder demonstrates how to use the Python Rich library to add formatting to your console applications.
Chat
X
Soporte Pocketmags