Building the Abstraction With Customer Driven Organizations
Python as an HVL?

History of the 'e' Language

A couple of months ago some of my colleagues at Verilab and I were discussing Aspect Oriented Programming and the e language and started wondering exactly how and when they came into existence.  Luckily, Mike Stellfox over at Cadence was able to give us the inside scoop directly from Yoav Hollander, creator of the e language, former CTO of Verisity, and currently the Verification Division Chief Technology Officer at Cadence.

1) When was e was first developed, and by who?

(Yoav) e and Specman were first used by real customers in 1992. It was developed in 91-92 (and later) mainly by yours truly, with a lot of help from Amos Noy, Yaron Kashai and Guy Mosenson (all of whom still work in the VPA group of Cadence).

2) What did the original language look like?

(Yoav) The original e language was quite similar to the current e. Here are some of the differences:

  • - Ports, packages and private/protected did not exist
  • - List of bit, byte etc. did not exit - there was a construct called "byte_array".

3) How similar was original e to the current version?

(Yoav) See above.

4) Where did the idea for using AOP come from?

(Yoav) AOP languages did not exist at the time. However, I was influenced by some of the writings of Gregor Kiczales, who later became one of the leaders of the AOP movement. "When inheritance" was influenced by Craig Chambers' ideas regarding predicate classes. Yet another influence on the language came from work on knowledge representation.

5) Anything else you think we might find interesting.

(Yoav) e  always had an embedded language-definition-language. Early on, that facility was used to add some "convenience constructs" such as "for each packet (p) such that p.x < 6 {...}". Such constructs can still be defined by the user, but they were removed from the official language to make it smaller.

Yoav and his colleagues Matthew Morley and Amos Noy published an interesting paper back in 2000 describing some of the unique features e language and how those features make the language suitable for hardware verification entitled The e Language: A Fresh Separation of Concerns.  It's a good read if you're trying to learn more about e or want to understand the rational behind some of the language's features.  Cadence is also making the rounds with their Technology on Tour series.  If you're in the process of making a decision about whether to use e or any of the other Cadence verification solutions you might want to check it out (or, as always, for a third-party perspective drop me a line at jl at coolverification dot com).