Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Mesa (programming language)
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Main features== ===Semantics=== Mesa was a [[strongly typed programming language]] with type-checking across module boundaries, but with enough flexibility in its type system that heap allocators could be written in Mesa.<ref name="geschke">{{cite journal |doi=10.1145/359763.359771 |first1=Charles |last1=Geschke |author-link=Charles Geschke |first2=James H. |last2=Morris |author-link2=James H. Morris |first3=Edwin H. |last3=Satterthwaite |date=August 1977 |title=Early Experience with Mesa |journal=Communications of the ACM |volume=20 |issue=8 |pages=540β552 |s2cid=15737342 |doi-access=free }}</ref> Due to its strict separation between interface and implementation, Mesa allows true incremental compilation and encourages [[computer architecture|architecture]]- and [[platform (computing)|platform]]-independent programming. They also simplified source-level [[debugger|debugging]], including remote debugging via the [[Ethernet]]. Mesa had rich [[exception handling]] facilities, with four types of exceptions. It had support for thread synchronization via monitors. Mesa was the first language to implement monitor BROADCAST, a concept introduced by the Pilot operating system.<ref name="monit">{{cite journal |doi=10.1145/358818.358824 |url=http://research.microsoft.com/lampson/23-ProcessesInMesa/Abstract.html |title=Experience with Processes and Monitors in Mesa |first1=Butler W. |last1=Lampson |author-link=Butler W. Lampson |first2=David D. |last2=Redell |journal=Communications of the ACM |volume=23 |issue=2 |pages=105β117 |date=February 1980 |citeseerx=10.1.1.142.5765 |s2cid=1594544 }}</ref> ===Syntax=== Mesa has an "imperative" and "algebraic" [[syntax]], based on [[ALGOL (programming language)|ALGOL]] and [[Pascal (programming language)|Pascal]] rather than on BCPL or [[C (programming language)|C]]; for instance, [[block (programming)|compound command]]s are indicated by the {{Mono|BEGIN}} and {{Mono|END}} keywords rather than [[brace (punctuation)|brace]]s. In Mesa, all keywords are written in uppercase.<ref name="manual" /> Due to PARC's using the 1963 variant of [[ASCII]] rather than the more common 1967 variant, the Alto's character set included a left-pointing arrow (β) rather than an underscore. The result of this is that Alto programmers (including those using Mesa, Smalltalk etc.) conventionally used [[camelCase]] for compound identifiers, a practice which was incorporated in PARC's standard programming style. On the other hand, the availability of the left-pointing arrow allowed them to use it for the assignment operator, as it originally had been in ALGOL. When the Mesa designers wanted to implement an exception facility, they hired a recent M.Sc. graduate{{who|date=October 2021}} from Colorado<!-- John B. Goodenough ? --> who had written his thesis on exception handling facilities in algorithmic languages. This led to the richest exception facility for its time, with primitives {{Mono|SIGNAL}}, {{Mono|ERROR}}, {{Mono|ABORT}}, {{Mono|RETRY}}, {{Mono|CATCH}}, and {{Mono|CONTINUE}}. As the language did not have type-safe checks to verify full coverage for signal handling, uncaught exceptions were a common cause of bugs in released software.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Mesa (programming language)
(section)
Add topic