Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Меза Кітапхананы пайдалану үшін бағдарлама немесе жоғары деңгейдегі кітапхана анықтамаларды "импорттауы" тиіс. Mesa компиляторы импортталған элементтердің барлық қолданылуын түр бойынша тексереді; жекелеген компиляцияны түрлік тексерумен үйлестіру сол кезде ерекше жағдай еді. Mesa тіл дизайны мен іске асыруда бірнеше жаңалықтарды енгізді, әсіресе бағдарламалық ерекшеліктерді басқару, жиектерді синхрондау және ұсынылымдық компиляция салаларында. Mesa Xerox Alto-да, графикалық пайдаланушы интерфейсіне ие алғашқы дербес компьютерлердің бірінде жасалды, бірақ Alto жүйелік бағдарламалық жасақтамасының көп бөлігі BCPL тілінде жазылған. Mesa кейінірек шыққан Xerox Star жұмыс станцияларының және GlobalView жұмыс ортасының жүйелік бағдарламалау тілі болды. Кейін Xerox PARC компаниясы Mesa-ның кеңейтілген түрі болған Cedar-ды жасады. Mesa және Cedar Modula 2 және Java сияқты басқа маңызды тілдердің дизайнына зор әсер етті, сондай-ақ GUI, желілік орталар және компьютерлік ғылым саласында Xerox-тың жетістіктерін дамыту мен таратуға ықпал етті.
Mesa To use a library, a program or higher level library must "import" the definitions. The Mesa compiler type checks all uses of imported entities; this combination of separate compilation with type checking was unusual at the time. Mesa introduced several other innovations in language design and implementation, notably in the handling of software exceptions, thread synchronization, and incremental compilation. Mesa was developed on the Xerox Alto, one of the first personal computers with a graphical user interface, however, most of the Alto's system software was written in BCPL. Mesa was the system programming language of the later Xerox Star workstations, and for the GlobalView desktop environment. Xerox PARC later developed Cedar, which was a superset of Mesa. Mesa and Cedar had a major influence on the design of other important languages, such as Modula 2 and Java, and was an important vehicle for the development and dissemination of the fundamentals of GUIs, networked environments, and the other advances Xerox contributed to the field of computer science.
Тарих
Mesa бастапқыда Xerox Palo Alto Research Center филиалының Компьютерлік жүйелер зертханасында (CSL), Alto эксперименталды микрокодталған жұмыс станциясы үшін жобаланған. Бастапқыда оның таралуы PARC және Xerox бірнеше Altos сыйға тартқан бірнеше университеттермен шектелді. Кейіннен Mesa Xerox компаниясының Xerox 8010 (Xerox Star, Dandelion) және Xerox 6085 (Daybreak) сияқты коммерциялық жұмыс станциялары үшін, әсіресе Pilot операциялық жүйесі үшін жүйелік бағдарламалау тілі ретінде қабылданды. Екінші деңгейдегі даму ортасы, Xerox Development Environment (XDE) деп аталады, бұл әзірлеушілерге Pilot операциялық жүйесін де, ViewPoint GUI қолданбаларын да әлемді ауыстыру механизмін пайдалана отырып, жөндеуге мүмкіндік берді. Бұл бүкіл әлемнің "күйін" ауыстыруға және бүкіл жүйені тоқтататын төменгі деңгейдегі жүйелік қателерді жөндеуге мүмкіндік берді. Бұл техника үлкен қолданбаларға (бірнеше мегабайт) жақсы масштабталмады, сондықтан Pilot/Mesa әлемі кейінгі нұсқаларда микрокодталған машиналар SPARC жұмыс станцияларымен және Intel PC-лердегі Mesa PrincOps эмуляторымен ауыстырылғанда әлемді ауыстыру көрінісінен алыстады. Mesa стек машинасының тіліне компиляцияланды, ол ең жоғары код тығыздығына ие болды (жоғары деңгейдегі тілдің әр мәлімдемесіне шамамен 4 байт). Бұл 1981 жылғы мақалада Xerox Systems Development Department (сол кезде PARC-тің даму бөлімі) іске асырушылары нұсқаулар жиынтығын жетілдіріп, нәтижесіндегі код тығыздығы туралы жариялаған. Mesa, Mesa бағдарламалау курсы арқылы оқытылды, ол адамдарды Xerox-тың сол кездегі кең технологиясымен таныстырып, бағдарламашының пайдалы болуға арналған жұмыс істейтін бағдарлама – «хак» жазуымен аяқталды. Мұндай «хак»тың нақты мысалы – 1988 жылы жазылған BWSMagnifier, ол пайдаланушыларға жұмыс станциясы экранының бөліктерін өзгертілетін терезе және өзгертілетін ұлғайту коэффициенті арқылы ұлғайтуға мүмкіндік берді. Xerox-тың Mesa бағдарламашылары GUI, желілік байланыс, ерекше жағдайлар және көп жіпті бағдарламалау негіздерін жақсы білді, бұл олардың сауда құралдары болғанға дейін шамамен он жыл бұрын болды. Xerox ішінде Mesa-ның орнын Cedar бағдарламалау тілі басты. Көптеген Mesa бағдарламашылары мен әзірлеушілері 1985 жылы Xerox компаниясын тастады; олардың кейбіреулері DEC Systems Research Center-ге барды, онда олар Modula 2+ және кейінірек Modula 3 дизайнында Mesa тәжірибесін пайдаланды.
Mesa was originally designed in the Computer Systems Laboratory (CSL), a branch of the Xerox Palo Alto Research Center, for the Alto, an experimental micro coded workstation. Initially, its spread was confined to PARC and a few universities to which Xerox had donated some Altos. Mesa was later adopted as the systems programming language for Xerox's commercial workstations such as the Xerox 8010 (Xerox Star, Dandelion) and Xerox 6085 (Daybreak), in particular for the Pilot operating system. A secondary development environment, called the Xerox Development Environment (XDE) allowed developers to debug both the operating system Pilot as well as ViewPoint GUI applications using a world swap mechanism. This allowed the entire "state" of the world to be swapped out, and allowed low level system crashes which paralyzed the whole system to be debugged. This technique did not scale very well to large application images (several megabytes), and so the Pilot/Mesa world in later releases moved away from the world swap view when the micro coded machines were phased out in favor of SPARC workstations and Intel PCs running a Mesa PrincOps emulator for the basic hardware instruction set. Mesa was compiled into a stack machine language, purportedly with the highest code density ever achieved (roughly 4 bytes per high level language statement). This was touted in a 1981 paper where implementors from the Xerox Systems Development Department (then, the development arm of PARC), tuned up the instruction set and published a paper on the resultant code density. Mesa was taught via the Mesa Programming Course that took people through the wide range of technology Xerox had available at the time and ended with the programmer writing a "hack", a workable program designed to be useful. An actual example of such a hack is the BWSMagnifier, which was written in 1988 and allowed people to magnify sections of the workstation screen as defined by a resizable window and a changeable magnification factor. Trained Mesa programmers from Xerox were well versed in the fundamental of GUIs, networking, exceptions, and multi threaded programming, almost a decade before they became standard tools of the trade. Within Xerox, Mesa was eventually superseded by the Cedar programming language. Many Mesa programmers and developers left Xerox in 1985; some of them went to DEC Systems Research Center where they used their experience with Mesa in the design of Modula 2+, and later of Modula 3.
Семантика
Mesa – модульдер шекаралары бойынша типтік тексеруі бар, бірақ үйінділік жад бөлушілерді Mesa тілінде жазуға мүмкіндік беретіндей икемді типтік жүйеге ие, күшті типтелген бағдарламалау тілі. Интерфейс пен іске асырудың қатаң бөлінуінің арқасында Mesa нақты инкременттік компиляцияны қамтамасыз етеді және архитектура мен платформаға тәуелсіз бағдарламалауға көмектеседі. Олар бастапқы код деңгейінде жөндеуді, соның ішінде Ethernet желісі арқылы қашықтан жөндеуді де жеңілдетті. Mesa төрт түрлі ерекше жағдайды өңдеуге арналған кең мүмкіндіктерге ие болды. Ол мониторлар арқылы жіптерді синхрондауды қолдады. Mesa – Pilot операциялық жүйесі ұсынған BROADCAST мониторын іске асырған алғашқы тіл.
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. Due to its strict separation between interface and implementation, Mesa allows true incremental compilation and encourages architecture and platform independent programming. They also simplified source level 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.
Синтаксисі
Mesa ALGOL және Pascal-ға негізделген "бұйрықтық" және "алгебралық" синтаксиске ие, BCPL немесе C-ге емес; мысалы, күрделі командалар жақшалардың орнына және кілт сөздерімен белгіленеді. Mesa-да барлық кілт сөздер үлкен әріптермен жазылады. Cedar-дың негізгі жаңалықтары – қоқыс жинау, динамикалық типтер, арқандар арқылы жолдарды жақсы қолдау, типті параметрлеудің шектеулі түрі және көп модульді бағдарламалық пакеттердің типтік қауіпсіз бөліктерін анықтауға арналған арнайы синтаксис, сондай-ақ детерминистік орындалуды қамтамасыз ету және жад ағып кетуін болдырмау.
Mesa has an "imperative" and "algebraic" syntax, based on ALGOL and Pascal rather than on BCPL or C; for instance, compound commands are indicated by the and keywords rather than braces. In Mesa, all keywords are written in uppercase. Cedar's main additions were garbage collection, dynamic types, better string support through ropes, a limited form of type parameterization, and special syntax for identifying the type safe parts of multi module software packages, to ensure deterministic execution and prevent memory leaks.
Ұрпақтар
АҚШ Қорғаныс министрлігі Xerox компаниясына Mesa-ны "IronMan" бағдарламалау тілі үшін пайдалану туралы ұсыныс жасады (Steelman тілінің талаптарын қараңыз), бірақ Xerox компаниясы мүдделердің қақтығысуына байланысты бас тартты. Xerox PARC қызметкерлері Mesa-ның Xerox бағдарламалық жасақтама инженерлерін басқа компаниялардың инженерлерінен гөрі тиімдірек ететін эксклюзивті артықшылық екенін айтты. Қорғаныс министрлігі кейін кандидаттардың ішінде Ada бағдарламалау тілін таңдап, оны өндірді. Алғашқы Star Desktop ViewPoint Desktop-қа, содан кейін GlobalView-ке айналды, ол SunOS Unix және AIX сияқты түрлі Unix платформаларына көшірілді. Mesa-дан C-ге компилятор жазылды және нәтижесіндегі код мақсатты платформа үшін компиляцияланды. Бұл жұмыс істейтін шешім болды, бірақ бұл тәсілді пайдаланғанда Mesa компиляторының қуаты мен оған қосымша құралдар жиынтығы жоғалғандықтан Unix машиналарында әзірлеуге тым қиын болды. Sun SPARC жұмыс станцияларында баспа саласында қандай да бір коммерциялық сәттілік болды, бірақ бұл тәсіл өнімді тар нарыққа оқшаулап қойды. 1976 жылы Xerox PARC-те демалыста болған кезде Никлаус Вирт Mesa-мен танысты, ол оның Modula 2 тілінің дизайнына маңызды әсер етті. Java тілі Mesa-ны алдыңғы нұсқасы ретінде нақты көрсетеді.
The United States Department of Defense approached Xerox to use Mesa for its "IronMan" programming language (see Steelman language requirements), but Xerox declined due to conflicting goals. Xerox PARC employees argued that Mesa was a proprietary advantage that made Xerox software engineers more productive than engineers at other companies. The Department of Defense instead eventually chose and developed the Ada programming language from the candidates. The original Star Desktop evolved into the ViewPoint Desktop and later became GlobalView which was ported to various Unix platforms, such as SunOS Unix and AIX. A Mesa to C compiler was written and the resulting code compiled for the target platform. This was a workable solution but made it nearly impossible to develop on the Unix machines since the power of the Mesa compiler and associated tool chain was lost using this approach. There was some commercial success on Sun SPARC workstations in the publishing world, but this approach resulted in isolating the product to narrow market opportunities. In 1976, during a sabbatical at Xerox PARC, Niklaus Wirth became acquainted with Mesa, which had a major influence in the design of his Modula 2 language. Java explicitly refers to Mesa as a predecessor.