Read up on the latest ideas and technologies from companies that sell hardware, software and services. Charting the Course for Mobile Broadband: Heading Towards High-Performance All-IP with LTE/SAE
APEC Police Force / Geomatic Technologies
Kaspersky® Internet Security 7.0 protects computers and laptops from all internet threats
CFA Victoria Collaboration between Telstra and CFA Victoria.
Delivering the Power of Choice with Microsoft Dynamics CRM
Mobile Security
Gold Coast Convention Centre shows the way with next-generation Cisco wireless LAN technology
MyNetFone & Powertec Launch Fax Service Over 3G Mobile Networks
Zones provide focussed content from Computerworld and leading technology partners.Newsletter Subscription
Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously we have spoken to Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, Chet Ramey about his experience maintaining Bash, Bjarne Stroustrup of C++ fame, to Charles H. Moore about the design and development of Forth, a chat with the irreverent Don Woods about the development and uses of INTERCAL and most recently, Stephen C. Johnson on YACC.
In this interview, we chat with Luca Cardelli, a member of the Modula-3 design committee. Cardelli is a Principal Researcher and Head of the Programming Principles and Tools and Security groups at Microsoft Research in Cambridge, UK, and is an ACM Fellow. Here he chats to Computerworld about the origins of Modula-3, including how the most exciting Modula-3 design meeting ever, was abruptly interrupted by the San Francisco 7.1 earthquake.
Please note that we are no longer following exact alphabetical order for this series, due to popular demand. If you'd like to submit any suggestions for programming languages or language authors that you'd like to see covered, please email naomi@computerworld.com.au.
Why did you feel the need to develop Modula-3? Was it a reaction to a problem that needed solving?
The "problem" was developing programming environments in a type-safe language. This meant that if I wrote a type-safe library, and my clients had a hard crash, I could say: "not my problem, somebody must be cheating somewhere" because the typechecker guaranteed that it wasn't my problem. You couldn't say that if you used C++.
Why was the name Modula-3 chosen?
We wanted to show continuity of the basic philosophy of modularization of Modula-2, carried out into an object-oriented language. Klaus Wirth designed Modula-2 while (or shortly after) visiting Xerox PARC, so there was a common origin. We asked him to use the name Modula-3, and he agreed, and he also occasionally attended our meetings.
How did Modula-2+ influence the design of Modula-3?
It was basically the same language, but with none of the dark corners.
Modula-2+ had been developing organically, and needed a cleanup and standardization. We also wanted to publicize the innovative features of Modula-2+ (which largely came from Cedar/Mesa at Xerox PARC), and make them available to a wider community.
Were there any particularly hard/annoying problems you had to overcome in the development of the language?
Settling the type system was the hard part, not only for me, but I believe for everybody. A POPL paper discussed just that part.
Why was one of the language's aims to continue the tradition of type safety, while introducing new elements for practical real-world programming? Was there a real need for this in the 1980s?
Yes, the idea to design type-safe operating systems was still in full swing. It started at Xerox with Cedar/Mesa, and continued at DEC with the Taos operating system. You might say it is still continuing with Microsoft's .NET, and we are not quite there yet.
Computerworld Member Login
Discover how SOA can create smarter outcomes for your business.
Attend and learn:
- How SOA is helping leading companies to become more agile
- Where you should be applying SOA processes in your company
- The top SOA implementation mistakes to avoid
Click here for more information.
- +
Computerworld Live Podcast #97: The Future of Enterprise Networking 25/07/2008 09:45:36
This week CW Live chats with Mark Thompson, global sales and marketing manager for HP ProCurve, on the future of the enterprise networking. Mark discusses the trends we can expect to see in the near future and how the right infrastructure can ensure your enterprise network is secure. - +
Computerworld Live Podcast #96: Security at the Edge 11/06/2008 09:22:22
CW Live speaks with Amol Mitra, HP ProCurve Director of Marketing for Asia Pacific and Japan. Today's topic: how enterprises are starting to shift away from simply controlling security via server logins, firewalls and moving to more adaptive security frameworks. - +
Data Management Edition #10: Multi-Petascale Systems 02/05/2008 09:12:33
This week we look at sustainability and the development of multicore technologies to build multi-petascale systems. - +
IT Security Edition #11: How to poison the Storm botnet 01/05/2008 08:51:55
This week CW Live presents a case study on how to poison the notorious Storm botnet . Plus we take a look at Cisco's plans for Ironport. - +
IT Security Edition #10: Cyber-battles fought and won 24/04/2008 11:09:47
Vendors bow to end user pressure to improve product security, and we take a look at the latest concepts shaping the cyber-battlefield of the future.
NetStar Networks Calls Brisbane Home 2008-10-13 12:01:00+10
New Verizon Business Managed Service Makes Collaboration Easier 2008-10-13 10:06:00+10
F-Secure achieves excellent results in Internet security suite comparison 2008-10-10 14:37:00+10
M2M Connectivity announces the new Sierra Wireless MC8792V embedded module for 900 MHz 3G/HSPA networks 2008-10-10 08:51:00+10
Pitney Bowes MapInfo Launches New Version of AnySite 2008-10-10 05:58:00+10
Realizing the Value of Unified Communications
Discover how the integration of disparate technologies in your company can lead to greater user productivity, improved management, lower costs, higher efficiency, and easier risk mitigation.











Comments
Annotations to the interview
Just a pair of comments:
The open source release of cm3 (Critical Mass Modula-3) development environment since 2000 and more recently of the web browser-based Integrated Development Environment called CM3-IDE gives an amount of support to several platforms (SPARC, x86, x86_64, PowerPC on Gnu/Linux, Windows, BSD, Mac and Solaris platforms) and have been recently contributed (updated) a threading implementation, a new 64 bit native language primitive type and a new garbage collection technique, the graphic libraries built on top of X11 server and Windows windowing systems, the gcc-4.3 based back end (available for almost all platforms) besides setting an automatic regression test framework for daily revising of the development environment. Also a gdb-6.4 extension based debugger, m3gdb.
About huge projects of Modula-3 there are several ranging from a life-critical 911 emergency call system, an extensible operating system, Spin, a commercial Java Virtual Machine, Critical Mass JVM, web servers including one for web development, hm3, animation systems built on top of Modula-3 and Obliq for augmented reality, Coterie, and for teaching purposes, Zeus and a so called Digital Desktop paradox environment. Also a Concurrent Versions System, with server/client platform highly efficient used for source code downloading on the BSD operating systems and in some GNU/Linux software, Cvsup. Also a functional programming language environment, with concurrency, exceptions and more, UFO . Besides compilers, cm3 (almost the entire integrated development environment is implemented in top of Modula-3), m2tom3, a debugger, ldb, and a constraint based graphic editor, Juno-2, and literate programming tools, as m3noweb and M3doc. And an on-line reading application with an editor and postscript to reading format converter, virtual paper. Also is used on embedded systems, in network interface cards, SPINE, on PDA, PARCTAB. Also a structured-oriented database management system (used on a persistent extension of Modula-3, Persistent Modula-3), a Graph Grammar Programming Environment, Progres.
The base libraries were formal revised with an Extended Static Checker, ESC/Modula-3 implemented also in Modula-3 (then ESC/Java) as a research project in prior Digital Equipment Corporation Systems Research Center, then Compaq Systems Research Center, now property of Hewlett Packard; specially the the Readers/Writers library, looking for index out of bound errors, nil dereferences, race conditions and deadlocks, using an automatic theorem prover also built on Modula-3, Simplify; all checking annotated source code in the presence of information hiding and data abstraction.
Also there is an upcoming Eclipse plug-in for the language, m3clipse.
For being more fair with the teachers, the language is a reference for it's use of the concurrency; is a handout in the Principles of Computer Systems course of MIT, also in Operating Systems courses in other Universities of Germany and Colombia. Also as a language for the course of Object Oriented Programming in Wichita State University.
The integrated development environment is freely available from:
Open Critical Mass Modula-3