User avatar
ZacharyI123
Posts: 263
Joined: Sun Jun 17, 2012 1:09 pm
Location: Ilford, Essex
Contact: Website

British-made programming language

Fri Nov 16, 2012 9:10 pm

Are there any programming languages invented and maintained in the UK or by a company/organisation that is based in the UK? If so, what are they?
Don't be mean, I'm only thirteen 8-)

User avatar
joan
Posts: 13620
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: British-made programming language

Fri Nov 16, 2012 9:13 pm

CORAL is all I can think of.

User avatar
redhawk
Posts: 3465
Joined: Sun Mar 04, 2012 2:13 pm
Location: ::1

Re: British-made programming language

Fri Nov 16, 2012 9:25 pm

Off the top of my head I really cannot think of any British made programming languages as such.
I believe the BBC Basic interpreter was coded by British engineers it's probably one of the few home computers not to contain Microsoft code.

Richard S.


KenT
Posts: 758
Joined: Tue Jan 24, 2012 9:30 am
Location: Hertfordshire, UK
Contact: Website

Re: British-made programming language

Fri Nov 16, 2012 10:23 pm

BCPL - From BCPL to B to C. Uni of Cambridge. Martin Richards has released it for the Pi.
Occam for Transputer by Inmos
Z, maybe not a computer language - Oxford Uni
MASCOT - developed by RSRE Malvern
Babbage - GEC Computers for 2050 and 4080
POP, POPLOG Uni of Sussex/Birmingham
Edinburgh PROLOG
RTL/2 - ICI

With thanks to Google for reviving fond memories of times past (except for Z which is even weirder than Prolog!)
Pi Presents - A toolkit to produce multi-media interactive display applications for museums, visitor centres, and more
Download from http://pipresents.wordpress.com

User avatar
redhawk
Posts: 3465
Joined: Sun Mar 04, 2012 2:13 pm
Location: ::1

Re: British-made programming language

Fri Nov 16, 2012 10:47 pm

lol I thought nothing could get any weirder than Prolog. :lol:

Richard S.

User avatar
joan
Posts: 13620
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: British-made programming language

Fri Nov 16, 2012 11:04 pm

KenT wrote:BCPL - From BCPL to B to C. Uni of Cambridge. Martin Richards has released it for the Pi.
Occam for Transputer by Inmos
Z, maybe not a computer language - Oxford Uni
MASCOT - developed by RSRE Malvern
Babbage - GEC Computers for 2050 and 4080
POP, POPLOG Uni of Sussex/Birmingham
Edinburgh PROLOG
RTL/2 - ICI

With thanks to Google for reviving fond memories of times past (except for Z which is even weirder than Prolog!)
I wouldn't class MASCOT as a language, more of a design methodology.

User avatar
Paul Webster
Posts: 762
Joined: Sat Jul 30, 2011 4:49 am
Location: London, UK

Re: British-made programming language

Fri Nov 16, 2012 11:25 pm

I remember writing my last chunk of Coral-66 during the Barcelona Olympics of 1992.
I stil have a PDP-11 that was used to run my stuff, sitting in the hall (with a tablecloth over it and a vase of flowers on top - a concession I had to make to allow it to hang around).

User avatar
SN
Posts: 1012
Joined: Mon Feb 13, 2012 8:06 pm
Location: Romiley, UK
Contact: Website

Re: British-made programming language

Fri Nov 16, 2012 11:44 pm

CESIL anyone?
I have an awk script that will interpret CESIL code if anyone wants it?
Steve N – binatone mk4->intellivision->zx81->spectrum->cbm64->cpc6128->520stfm->pc->raspi ?

User avatar
AndyD
Posts: 2327
Joined: Sat Jan 21, 2012 8:13 am
Location: Melbourne, Australia
Contact: Website

Re: British-made programming language

Sat Nov 17, 2012 2:41 am

Parlog http://en.wikipedia.org/wiki/Parlog was designed at Imperial College London.

User avatar
LetHopeItsSnowing
Posts: 357
Joined: Sat May 26, 2012 6:40 am
Location: UK
Contact: Website

Re: British-made programming language

Sat Nov 17, 2012 9:12 pm

KenT wrote:BCPL - From BCPL to B to C. Uni of Cambridge. Martin Richards has released it for the Pi.
Occam for Transputer by Inmos
Z, maybe not a computer language - Oxford Uni
MASCOT - developed by RSRE Malvern
Babbage - GEC Computers for 2050 and 4080
POP, POPLOG Uni of Sussex/Birmingham
Edinburgh PROLOG
RTL/2 - ICI

With thanks to Google for reviving fond memories of times past (except for Z which is even weirder than Prolog!)
I remember Z, weird and completely friggin useless!
"am I getting slower, or is stuff more complicated; either way I now have to write it down - stuffaboutcode.com"

paultnl
Posts: 103
Joined: Fri Oct 12, 2012 6:25 pm
Location: Cambridge

Re: British-made programming language

Sat Nov 17, 2012 9:33 pm

CESIL? I thought I was the only one left :D
I don't like Russian dolls, they are so full of themselves

hippy
Posts: 4031
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: British-made programming language

Sun Nov 18, 2012 4:49 pm

Ferranti Autocode was British, and my first introduction to programming languages courtesy of a book in the school library way back before anyone invented the micro.

User avatar
PeterO
Posts: 4296
Joined: Sun Jul 22, 2012 4:14 pm

Re: British-made programming language

Sun Nov 18, 2012 4:57 pm

hippy wrote:Ferranti Autocode was British, and my first introduction to programming languages courtesy of a book in the school library way back before anyone invented the micro.
Most of the earliest machines had their own autocode of one flavour or another.
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),Aeromodelling,1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
johnbeetem
Posts: 944
Joined: Mon Oct 17, 2011 11:18 pm
Location: The Coast
Contact: Website

Re: British-made programming language

Mon Nov 19, 2012 3:22 pm

Communicating Sequential Processes (CSP), by C.A.R. Hoare.

User avatar
Mequa
Posts: 172
Joined: Sun Sep 09, 2012 9:54 pm
Location: England
Contact: Website

Re: British-made programming language

Mon Nov 19, 2012 7:04 pm

johnbeetem wrote:Communicating Sequential Processes (CSP), by C.A.R. Hoare.
This, and the concurrent C-based implementation by XMOS, XC, which brings CSP semantics to C-style syntax for programming embedded multi-core and low-latency input systems.

rgvraspi
Posts: 32
Joined: Sat Nov 03, 2012 3:38 pm
Location: USA

Re: British-made programming language

Mon Nov 19, 2012 8:49 pm

What about REXX?

I remember programming in this many years ago. I even had a version on a Pocket PC a while back.

BlackJack
Posts: 288
Joined: Sat Aug 04, 2012 8:28 am
Contact: Website

Re: British-made programming language

Mon Nov 19, 2012 9:20 pm

Isn't all this a bit off topic unless we also see if there are implementations that could run on the Raspi? :-)

For REXX there is a Debian package named `regina-rexx` for instance.

Code: Select all

while not self.asleep():
    sheep += 1

User avatar
[email protected]
Posts: 1989
Joined: Tue Feb 07, 2012 2:14 pm
Location: Devon, UK
Contact: Website

Re: British-made programming language

Tue Nov 20, 2012 12:59 pm

ZacharyI123 wrote:Are there any programming languages invented and maintained in the UK or by a company/organisation that is based in the UK? If so, what are they?
Occam and imp77 (Edinburgh IMP) are ones that spring to my mind that haven't been mentioned here already - not exactly being maintained today though, but there is an imp77 compiler for Linux x86 architecture.

And RTB - Return to BASIC - my own BASIC interpreter (whch does run on the Pi - watch this space, or other spaces as I'll be publishing it later today ;-)

-Gordon
--
Gordons projects: https://projects.drogon.net/

User avatar
alexeames
Forum Moderator
Forum Moderator
Posts: 2827
Joined: Sat Mar 03, 2012 11:57 am
Location: UK
Contact: Website

Re: British-made programming language

Tue Nov 20, 2012 2:08 pm

rgvraspi wrote:What about REXX?

I remember programming in this many years ago. I even had a version on a Pocket PC a while back.

Ooh I did a pre-uni year at IBM and learnt REXX. Mike Cowlishaw, the guy who wrote it used to work round the corner. He was a bit of an in-house celebrity - don't think I ever spoke to him though. :D
Alex Eames RasPi.TV, RasP.iO

malcolmf
Posts: 11
Joined: Tue Jun 19, 2012 2:20 pm

Re: British-made programming language

Tue Nov 20, 2012 8:01 pm

I do wonder what language was used on LEO, the computer system that ran Lyons' Teashops for years (stock control and Payroll, I think)
Supposedly the world's first business computer: http://is2.lse.ac.uk/leo/About_LEO.htm
And people are thinking of making an emulator.

What are the odds that someone, sooner or later, will port that to the pi?

User avatar
[email protected]
Posts: 1989
Joined: Tue Feb 07, 2012 2:14 pm
Location: Devon, UK
Contact: Website

Re: British-made programming language

Tue Nov 20, 2012 8:08 pm

malcolmf wrote:I do wonder what language was used on LEO, the computer system that ran Lyons' Teashops for years (stock control and Payroll, I think)
Supposedly the world's first business computer: http://is2.lse.ac.uk/leo/About_LEO.htm
And people are thinking of making an emulator.

What are the odds that someone, sooner or later, will port that to the pi?
According to wikipedia:
Users of LEO computers programmed in two coding languages: Intercode, a low-level assembler type language; and CLEO (acronym: Clear Language for Expressing Orders), the COBOL equivalent.
But if you want BASIC, https://projects.drogon.net/return-to-basic/ is now go :-)

-Gordon
--
Gordons projects: https://projects.drogon.net/

User avatar
SN
Posts: 1012
Joined: Mon Feb 13, 2012 8:06 pm
Location: Romiley, UK
Contact: Website

Re: British-made programming language

Tue Nov 20, 2012 8:15 pm

paultnl wrote:CESIL? I thought I was the only one left :D
Nope. Below is my CESIL interpreter awk script

Code: Select all

BEGIN{
	pc=0
	dc=0
	lc=0
	INCODE=1
	for(i=0;i<100;i++) validvalue[i]=""

	if (DEBUG==1) printf("Running in DEBUG mode.\nParsing program ...\n")
}


{
    if ((NF > 0) && (substr($0,1,1) != "*"))
    {
	if (INCODE == 1)
	{
		OPERAND = ""
		INSTRUCTION = ""
		LABEL = ""
		HASALABEL=1

		INPUTLINE=$0
		gsub("\t"," ",INPUTLINE)
		if (substr(INPUTLINE,1,1) == " ") HASALABEL = 0

		if (HASALABEL == 0)
		{
			INSTRUCTION = $1
			opstart = 2
		}
		else
		{
			LABEL = $1	
			INSTRUCTION = $2
			validlabel[LABEL] = LABEL
			labellocation[LABEL] = pc
			labelname[lc] = LABEL
			lc++
			opstart = 3
		}

		if (NF >= opstart)
		{
			/* need to fix spacing retention */
			WORD = $opstart
			gsub("\"","",WORD)
			OPERAND = WORD
			for(word=opstart+1;word<=NF;word++)
			{
				WORD = $word
				gsub("\"","",WORD)
				OPERAND = OPERAND " " WORD
			}
		}

		if (INSTRUCTION == "%")
		{
			INCODE=0
		}
		else
		{
			label[pc] = LABEL
			instruction[pc] = INSTRUCTION
			operand[pc] = OPERAND

			LASTINSTRUCTION = INSTRUCTION
			pc++
		}
		
	}
	else
	{
		data[dc] = $1
		for(word=2;word<=NF;word++)
		{
			data[dc] = data[dc] " " $word
		}
		dc++
	}
    }
    else
    {
	if (DEBUG==1) print "cesil: blank line ignored at " NR 
    }
}

END{
	if (DEBUG==1)
	{
		print "Program:"
		TAB = "|"
		for(ip=0;ip<pc;ip++)
		{
			PAD = ""
			if (ip < 100) PAD = "0"
			if (ip < 10) PAD = "00"
			print TAB PAD ip TAB label[ip] TAB instruction[ip] TAB operand[ip] TAB
		}
		print "Labels:"
		for(lp=0;lp<lc;lp++)
		{
			LABEL = labelname[lp]
			print LABEL " = " labellocation[LABEL]
		}
		printf("Data:");
		for(dp=0;dp<dc;dp++)
		{
			printf(" %s",data[dp])
		}
		printf("\nRunning program ...\n")
	}

	RUNNING=1
	IP=0
	NEXTIP=0
	DP=0
	ACCUMULATOR=0

	for(;RUNNING==1;)
	{
		IP = NEXTIP

		LABEL = label[IP]
		INSTRUCTION = instruction[IP]
		OPERAND = operand[IP]

		NEXTIP=IP+1
		if (DEBUG==1)
		{
			print TAB IP TAB LABEL TAB INSTRUCTION TAB OPERAND TAB
		}
		if (INSTRUCTION == "STORE")
		{
			validvalue[OPERAND] = OPERAND
			value[OPERAND] = ACCUMULATOR
			if (DEBUG==1)  print ">>> STORE " OPERAND " = " value[OPERAND]

		}	
		if (INSTRUCTION == "LOAD")
		{
			VALUE = OPERAND
			if (validvalue[OPERAND] == OPERAND) VALUE=value[OPERAND]
			ACCUMULATOR = VALUE
			if (DEBUG==1)  print ">>> LOAD ACCUMULATOR = " ACCUMULATOR
			if (VALUE == "")
			{
				printf("error: no value for OPERAND " OPERAND " at line %d\n",IP);
				RUNNING=0;
			}
		}
		if (INSTRUCTION == "IN")
		{
			if (DP == dc)
			{
				printf("error: out of data at line %d\n",IP);
				RUNNING=0;
			}
			else
			{
				ACCUMULATOR = data[DP]
				DP++;
			}
		}
		if (INSTRUCTION == "PRINT")
		{
			printf(OPERAND);
		}

		if (INSTRUCTION == "OUT")
		{
			printf("%s",ACCUMULATOR);
		}

		if (INSTRUCTION == "LINE")
		{
			printf("\n");
		}
		
		if (INSTRUCTION == "ADD")
		{
			VALUE = OPERAND
			if (validvalue[OPERAND] == OPERAND) VALUE= value[OPERAND]
			ACCUMULATOR = ACCUMULATOR + VALUE
			if (DEBUG==1) print ">>> ACCUMULATOR ADD " VALUE " = " ACCUMULATOR
		}

		if (INSTRUCTION == "SUBTRACT")
		{
			VALUE = OPERAND
			if (validvalue[OPERAND] == OPERAND) VALUE= value[OPERAND]
			ACCUMULATOR = ACCUMULATOR - VALUE
			if (DEBUG==1) print ">>> ACCUMULATOR SUBTRACT " VALUE " = " ACCUMULATOR
		}

		if (INSTRUCTION == "MULTIPLY")
		{
			VALUE = OPERAND
			if (validvalue[OPERAND] == OPERAND) VALUE= value[OPERAND]
			ACCUMULATOR = ACCUMULATOR * VALUE
			if (DEBUG==1) print ">>> ACCUMULATOR MULTIPLY " VALUE " = " ACCUMULATOR
		}

		if (INSTRUCTION == "DIVIDE")
		{
			VALUE = OPERAND
			if (validvalue[OPERAND] == OPERAND) VALUE= value[OPERAND]
			if (VALUE == 0)
			{
				printf("error: divide by zero at line %d\n",IP);
				RUNNING=0;
			}
			else
			{
				ACCUMULATOR = int(ACCUMULATOR / VALUE)
			}
			if (DEBUG==1) print ">>> ACCUMULATOR DIVIDE " VALUE " = " ACCUMULATOR
		}

		if (INSTRUCTION == "HALT")
		{
			RUNNING=0;
			if (debug==1) printf("warning: program halted at line %s\n",IP);
		}

		if (INSTRUCTION == "JUMP")
		{
			if (validlabel[OPERAND] == OPERAND)
			{
				NEXTIP = labellocation[OPERAND]
			}
			else
			{
				RUNNING=0;
				printf("error: undefined label %s line %s\n",OPERAND,IP);
			}
		}

		if (INSTRUCTION == "JIZERO")
		{
		    if (ACCUMULATOR == 0)
		    {
			if (validlabel[OPERAND] == OPERAND)
			{
				NEXTIP = labellocation[OPERAND]
			}
			else
			{
				RUNNING=0;
				printf("error: undefined label %s line %s\n",OPERAND,IP);
			}
		    }
		}

		if (INSTRUCTION == "JINEG")
		{
		    if (ACCUMULATOR < 0)
		    {
			if (validlabel[OPERAND] == OPERAND)
			{
				NEXTIP = labellocation[OPERAND]
			}
			else
			{
				RUNNING=0;
				printf("error: undefined label %s line %s\n",OPERAND,IP);
			}
		    }
		}
	}
	if (DEBUG==1) printf("Program finished.\n")

}
Steve N – binatone mk4->intellivision->zx81->spectrum->cbm64->cpc6128->520stfm->pc->raspi ?

KenT
Posts: 758
Joined: Tue Jan 24, 2012 9:30 am
Location: Hertfordshire, UK
Contact: Website

Re: British-made programming language

Tue Nov 20, 2012 9:34 pm

OPL the programming language for the Psion Series 3 etc. Psion was a British company. I've still got my Psion3a. I use it occasionally with Pslinkl if I want to test serial link terminal software.
Pi Presents - A toolkit to produce multi-media interactive display applications for museums, visitor centres, and more
Download from http://pipresents.wordpress.com

rgvraspi
Posts: 32
Joined: Sat Nov 03, 2012 3:38 pm
Location: USA

Re: British-made programming language

Tue Nov 20, 2012 10:20 pm

I have one too. I noticed that on the back it has "Made in the UK". Hard to believe there was a time when devices were not normally made in China! The 512MB Raspberry Pi I have is the only item I have had since then that says this. I also have a Series 3c somewhere too. Brilliant little devices. I could never understand why they didn't make at least some impact in the USA as they were as good, if not better than anything else at the time!

There was an open source project for OPL where they renamed it "Open Programming Language" to port it to the Symbian phones but it seems it was abandoned a few years back.

Here is the link: http://opl-dev.sourceforge.net/

It would be nice if was resurrected it for the Raspberry Pi.
OPL the programming language for the Psion Series 3 etc. Psion was a British company. I've still got my Psion3a. I use it occasionally with Pslinkl if I want to test serial link terminal software.

Return to “General programming discussion”