Page 1 of 3

British-made programming language

Posted: Fri Nov 16, 2012 9:10 pm
by ZacharyI123
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?

Re: British-made programming language

Posted: Fri Nov 16, 2012 9:13 pm
by joan
CORAL is all I can think of.

Re: British-made programming language

Posted: Fri Nov 16, 2012 9:25 pm
by redhawk
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.

Re: British-made programming language

Posted: Fri Nov 16, 2012 9:28 pm
by redhawk

Re: British-made programming language

Posted: Fri Nov 16, 2012 10:23 pm
by KenT
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!)

Re: British-made programming language

Posted: Fri Nov 16, 2012 10:47 pm
by redhawk
lol I thought nothing could get any weirder than Prolog. :lol:

Richard S.

Re: British-made programming language

Posted: Fri Nov 16, 2012 11:04 pm
by joan
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.

Re: British-made programming language

Posted: Fri Nov 16, 2012 11:25 pm
by Paul Webster
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).

Re: British-made programming language

Posted: Fri Nov 16, 2012 11:44 pm
by SN
CESIL anyone?
I have an awk script that will interpret CESIL code if anyone wants it?

Re: British-made programming language

Posted: Sat Nov 17, 2012 2:41 am
by AndyD
Parlog http://en.wikipedia.org/wiki/Parlog was designed at Imperial College London.

Re: British-made programming language

Posted: Sat Nov 17, 2012 9:12 pm
by LetHopeItsSnowing
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!

Re: British-made programming language

Posted: Sat Nov 17, 2012 9:33 pm
by paultnl
CESIL? I thought I was the only one left :D

Re: British-made programming language

Posted: Sun Nov 18, 2012 4:49 pm
by hippy
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.

Re: British-made programming language

Posted: Sun Nov 18, 2012 4:57 pm
by PeterO
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

Re: British-made programming language

Posted: Mon Nov 19, 2012 3:22 pm
by johnbeetem
Communicating Sequential Processes (CSP), by C.A.R. Hoare.

Re: British-made programming language

Posted: Mon Nov 19, 2012 7:04 pm
by Mequa
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.

Re: British-made programming language

Posted: Mon Nov 19, 2012 8:49 pm
by rgvraspi
What about REXX?

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

Re: British-made programming language

Posted: Mon Nov 19, 2012 9:20 pm
by BlackJack
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.

Re: British-made programming language

Posted: 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

Re: British-made programming language

Posted: Tue Nov 20, 2012 2:08 pm
by alexeames
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

Re: British-made programming language

Posted: Tue Nov 20, 2012 8:01 pm
by malcolmf
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?

Re: British-made programming language

Posted: 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

Re: British-made programming language

Posted: Tue Nov 20, 2012 8:15 pm
by SN
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")

}

Re: British-made programming language

Posted: Tue Nov 20, 2012 9:34 pm
by KenT
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.

Re: British-made programming language

Posted: Tue Nov 20, 2012 10:20 pm
by rgvraspi
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.