Is cisco IOS programmed in forth?

the syntax seems forth-like. Like saying "no blah-blah" to negate the "blah-blah" command, and the tokenization.

Reply to
sqrfolkdnc
Loading thread data ...

Seems unlikey - to me.

How can we find out?

Cisco Jobs. ... Excellent C/C++ design ... Extensive coding in C

The other 4 or so I looked at didn't say.

Reply to
anybody43

Why unlikely? Forth is used for many low level embedded applications, such as SUN's boot rom, and many dedicated things like vending machines.

I was hoping somebody that knows (like a current or former Cisco employee) could answer, or maybe somebody with a high level certification and access to Cisco's inner circle could ask them.

Reply to
sqrfolkdnc

In article , sqrfolkdnc wrote: :Why unlikely? Forth is used for many low level embedded applications, :such as SUN's boot rom, and many dedicated things like vending :machines.

There's been enough hints over the years to know it isn't Forth.

;I was hoping somebody that knows (like a current or former Cisco ;employee) could answer, or maybe somebody with a high level ;certification and access to Cisco's inner circle could ask them.

Well, I've never been any of those, but I can answer the question anyhow. You could have too, if you'd done 10 minutes searching.

formatting link

Reply to
Walter Roberson

And I don't even get the connection that the original poster claimed. I don't know Forth well, but the command-line and configuration file syntax doesn't seem anything like what I've seen of it. Forth is stack-based, so it uses reverse Polish syntax -- operators come after their parameters. The only connection the OP made was the use of "no" to undo things (is that really a common thing in Forth?), but that's simply normal English.

Didn't some of the original Cisco designers come out of the DEC world? What's surprising, then, is that we don't have lots of /option syntax in Cisco. But the command completion in the UI was inspired by DEC operating systems.

Reply to
Barry Margolin

sqrfolkdnc schrieb:

do a hex dump on an IOS image and you'll see Cisco uses GCC. So the programming language will on of the common denominators of GCC

2.95.x.
Reply to
Uli Link

At the time (as I recall) a few Unix shells had command completion and that, in addition to command line editing, that's when it was added. I don't know if it's related to DEC (I hadn't worked with DEC equipment then).

On the issue of Forth, when I visited Cisco for training on their routers (late 80's) they had a Wednesday evening get together (cheese and wine tasting). During that training I learned that one programmer was having trouble debugging some of their new DECnet code and that he was using GCC and GDB. I'd take it that Cisco is still using C in their code.

Reply to
Neil Cherry

A number of systems in the 80's had command completion. They pretty much all got the idea from DEC. One of the first Unix shells with it was tcsh -- the "t" was for Tenex, the name of a DEC OS (aka TOPS-10).

Reply to
Barry Margolin

I stand corrected. I know that the command line editing is modeled after emacs. I think the DEC equipment uses a different key set as I sometimes use my emacs commands and I screw up the command line on my Vaxen and termincal servers.

Thanks

Reply to
Neil Cherry

IIRC (big if!) the Cisco command line editing and completion is copied from the Korn shell (ksh); in fact I think the code was taken from ksh. This was said by a Cisco employee (Dave Katz?) on the old snipped-for-privacy@spot.colorado.edu mailing list just before the line editing code was released. Unfortunately I can't find an archive of that list that goes far enough back to support that claim!

Sam Wilson Network Development Team, Infrastructure Services Division Computing Services, The University of Edinburgh Edinburgh, Scotland, UK

Reply to
Sam Wilson

How long has Korn shell been around? I think Cisco had Emacs-style command line editing when I first started using it around 1988 or 1989.

Reply to
Barry Margolin

I still have my Gateway System Manual for software release 8.1 from

1989/90 and that definitely doesn't have general CLI editing. There is some minimal editing but no history or cursor key or EMACS-style stuff. Manuals for Software Release 9.1, September 1992, don't have it either. I can see some IOS 10.2 manuals in our store room (yes, it was IOS by then) but I'd have to move too many other things to reach the relevant ones. 10.2 manuals are undated on the cover but copyrighted 1994.

I'd guess it came in with IOS 10.0 in about 1993.

Sam

Sam Wilson Network Development Team, Infrastructure Services Division Computing Services, The University of Edinburgh Edinburgh, Scotland, UK

Reply to
Sam Wilson

[ where "it" is command line editing à la Tenex, Tcsh etc. ]

Disable Enhanced Editing Mode

To disable enhanced editing mode and revert to the editing mode of software releases before 9.21, ...

IOS 10.3 Router Products Configuration Guide, "Understanding the User Interface" chapter.

Sam

Reply to
Sam Wilson

Korn shell was first out in late '86 or early '87 in very limited early public releases (ie. not BellLabs only), or '88 for a broad release.

IOS 10.0 was the first IOS that had command line editing. Neither 9.21 or 9.24 did not. I don't remember when 10.0 was released, but I remember using 9.24 release in routers that shipped in very late 1993 and not having command editing or completion. I'm guessing 10.0 came out probably around the same time the 2501 shipped in 1Q1994.

Reply to
Doug McIntyre

To get back to the original topic of this thread, could it be that version 1 of IOS was written in forth, and it was later rewritten in C++, but the command syntax was maintained? If anybody is interested, I can post more reasons it think the syntax is forth-like. Command completion is not a big reason.

Reply to
sqrfolkdnc

In article , sqrfolkdnc wrote: :To get back to the original topic of this thread, could it be that :version 1 of IOS was written in forth, and it was later rewritten in :C++, but the command syntax was maintained? If anybody is interested, :I can post more reasons it think the syntax is forth-like. Command :completion is not a big reason.

formatting link
This message contains a review of the Cisco ASM-32 terminal servers, and is pretty much the first archived message about Cisco products (Nov

1986). The description indicates that the command syntax is modelled on TOPS-20.

If you examine the syntax of the ASM-32 you will see that IOS is recognizably the same syntax flavour.

TOPS-20 was by shipped by DEC in January 1976, which was after the invention of Forth but before Forth was formalized as a programming language in 1977.

Do we need to go back further and find one of the TOPS-20 pioneers and ask them whether TOPS-20 syntax was inspired by the pre-formalized Forth? (Hint: examine the TWENEX timeline)

Reply to
Walter Roberson

The nifty (? completion) command parser look-and-feel appeared originally in the TENEX OS for the DEC 36-bit machines from BBN, which OS was very popular at Stanford, whence Cisco's founders came. (TENEX is NOT to be confused with DEC's own TOPS-10 OS which lacked such a parser.) DEC's subsequent TOPS-20 (aka, cutely, "Twenex") had a generalized version of this parser (the COMND JSYS system call.)

This history can be found in the tcsh(1) manpage - see "THE T IN TCSH"

formatting link
. IOS was similarly inspired by the TENEX/TOPS-20 parser.

Aaron

Reply to
Aaron Leonard

Cabling-Design.com Forums website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.