Maclisp

From alpha
Jump to navigation Jump to search
Maclisp
ParadigmsMulti-paradigm: functional, procedural, reflective, meta
परिवारLisp
द्वारा डिज़ाइन किया गयाRichard Greenblatt
Jon L. White
DeveloperMIT: Project MAC
पहली प्रस्तुतिJuly 1966; 57 years ago (1966-07)
टाइपिंग अनुशासनdynamic, strong
कार्यान्वयन भाषाAssembly language, PL/I
प्लेटफॉर्मPDP-6, PDP-10
ओएसIncompatible Timesharing System, TOPS-10, TOPS-20, Multics
फ़ाइल नाम एक्सटेंशनएस.lisp, .fasl
Influenced by
Lisp 1.5
Influenced
Common Lisp

Maclisp (या MACLISP, कभी-कभी स्टाइल MacLisp या MacLISP) एक प्रोग्रामिंग भाषा है, भाषा लिस्प (प्रोग्रामिंग भाषा) की एक बोली (कंप्यूटिंग)। यह मैसाचुसेट्स की तकनीकी संस्था (एमआईटी) प्रोजेक्ट मैक में उत्पन्न हुआ[1] (जिससे इसने अपना उपसर्ग प्राप्त किया) 1960 के दशक के अंत में और लिस्प 1.5 पर आधारित था।[2] रिचर्ड ग्रीनब्लाट (प्रोग्रामर) पीडीपी-6 के लिए मूल कोडबेस के मुख्य विकासकर्ता थे;[1]जॉन एल. व्हाइट इसके बाद के रखरखाव और विकास के लिए जिम्मेदार थे। Maclisp नाम का उपयोग 1970 के दशक की शुरुआत में इसे PDP-6 Lisp के अन्य Fork (सॉफ़्टवेयर विकास) से अलग करने के लिए किया जाने लगा, विशेष रूप से BBN Lisp

इतिहास

Maclisp, Lisp 1.5 का वंशज है।[3] चर (कंप्यूटर विज्ञान) के गतिशील मूल्यों तक पहुँचने और संग्रहीत करने के लिए एक मूल्य सेल का उपयोग करके Maclisp लिस्प 1.5 से प्रस्थान करता है;[4] लिस्प 1.5 ने एक चर के मान को निर्धारित करने के लिए एक संघ सूची की रैखिक खोज का उपयोग किया।[5] Maclisp चर मूल्यांकन तेज है, लेकिन अलग-अलग चर शब्दार्थ हैं। Maclisp ने अधिक पठनीय इनपुट और आउटपुट, जिसे इनपुट/आउटपुट (I/O) कहा जाता है, बनाने के लिए रीडर मैक्रोज़ को भी नियोजित किया। प्रवेश करने के बजाय (QUOTE A), कोई प्रवेश कर सकता है 'A समान एस-अभिव्यक्ति प्राप्त करने के लिए। यद्यपि दोनों कार्यान्वयन संपत्ति सूची पर कार्य करते हैं, Maclo Sp कार्यों को परिभाषित करने के लिए विभिन्न सिंटैक्स का उपयोग करता है।[6] Maclisp में लोड-ऑन-डिमांड सुविधा भी है।[7] Maclisp डिजिटल उपकरण निगम PDP-6 और PDP-10 कंप्यूटरों पर शुरू हुआ जो असंगत टाइमशेयरिंग सिस्टम (ITS) चला रहे थे; बाद में इसे अन्य सभी PDP-10 ऑपरेटिंग सिस्टम में पोर्ट किया गया, उदाहरण के लिए, टाइमशेयरिंग / टोटल ऑपरेटिंग सिस्टम, TOPS-10 और TOPS-20। मूल कार्यान्वयन असेंबली भाषा में था, लेकिन बाद में मॉलटिक्स पर कार्यान्वयन ने PL/I का उपयोग किया। Maclisp अपने जीवनकाल में काफी विकसित हुआ। प्रमुख विशेषताएं[which?] जोड़े गए जो अन्य भाषा प्रणालियों में आम तौर पर प्रमुख रिलीज नंबरों के अनुरूप होंगे।[dubious ] Maclisp का उपयोग Macsyma कंप्यूटर बीजगणित प्रणाली (CAS) या प्रतीकात्मक बीजगणित कार्यक्रम को लागू करने के लिए किया गया था। Macsyma के विकास ने कई विशेषताओं को भी संचालित किया[which?] मैकलिस्प में। SHRDLU ब्लॉक-वर्ल्ड प्रोग्राम Maclisp में लिखा गया था, और इसलिए 1980 के दशक की शुरुआत में कृत्रिम बुद्धिमत्ता (AI) अनुसंधान समुदाय में भाषा का व्यापक उपयोग किया गया था। इसका उपयोग योजना (प्रोग्रामिंग भाषा), जैसे योजनाकार (प्रोग्रामिंग भाषा) और स्कीम (प्रोग्रामिंग लैंग्वेज) को लागू करने के लिए भी किया गया था। पहले लिस्प-आधारित Emacs को लागू करने के लिए मल्टिक्स मैक्लिस्प का उपयोग किया गया था।

Maclisp एक प्रभावशाली लिस्प कार्यान्वयन था, लेकिन अब इसे सक्रिय रूप से बनाए नहीं रखा जाता है। यह अब PDP-10 एमुलेटर पर चलता है और शुरुआती AI प्रोग्राम के साथ प्रयोग करने के लिए इस्तेमाल किया जा सकता है।

1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
 LISP 1, 1.5, LISP 2(abandoned)
 Maclisp
 Interlisp
 MDL
 Lisp Machine Lisp
 Scheme  R5RS  R6RS  R7RS small
 NIL
 ZIL (Zork Implementation Language)
 Franz Lisp
 Common Lisp  ANSI standard
 Le Lisp
 MIT Scheme
 T
 Chez Scheme
 Emacs Lisp
 AutoLISP
 PicoLisp
 Gambit
 EuLisp
 ISLISP
 OpenLisp
 PLT Scheme  Racket
 GNU Guile
 Visual LISP
 Clojure
 Arc
 LFE
 Hy


विशेषताएं

Maclisp डेटा प्रकारों की एक छोटी, निश्चित संख्या के साथ शुरू हुआ: दोष सेल, एटम (जिसे बाद में प्रतीक कहा गया), पूर्णांक, और फ़्लोटिंग-पॉइंट अंकगणित | फ़्लोटिंग-पॉइंट नंबर। बाद के परिवर्धन में शामिल हैं: ऐरे डेटा प्रकार, जो कभी भी प्रथम श्रेणी के डेटा प्रकार नहीं थे; मनमाना-सटीक अंकगणित|मनमाना-सटीक पूर्णांक (बिग्नम); स्ट्रिंग (कंप्यूटर विज्ञान); और टुपल्स। सभी वस्तुओं (इनम्स को छोड़कर) को सूचक (कंप्यूटर प्रोग्रामिंग) के रूप में लागू किया गया था, और उनके डेटा प्रकार को मेमोरी के ब्लॉक द्वारा निर्धारित किया गया था, जिसमें छोटी संख्या (इनम्स) के लिए एक विशेष मामला था।

प्रोग्राम व्याख्या की गई भाषा या संकलक हो सकते हैं। संकलित व्यवहार व्याख्या के समान था, सिवाय इसके कि स्थानीय चर संकलित कोड में डिफ़ॉल्ट रूप से व्याख्यात्मक थे, जब तक कि विशेष घोषित नहीं किया गया हो,[8] और सीएआर और सीडीआर जैसे इनलाइन परिचालनों के लिए कोई त्रुटि जांच नहीं की गई थी। Ncomplr कंपाइलर (1970 के दशक के मध्य) ने डेटा प्रकार पर भेजे जाने वाले व्याख्यात्मक रूटीन को कॉल करने के बजाय अंकगणित के लिए मशीन कोड (निर्देश) उत्पन्न करते हुए, लिस्प भाषाओं के लिए तेज़ संख्यात्मक समर्थन पेश किया। इसने लिस्प अंकगणित को स्केलर ऑपरेशंस के लिए फोरट्रान की गति के बराबर बना दिया (हालांकि फोरट्रान सरणी और लूप कार्यान्वयन बहुत तेज रहा)।

मूल संस्करण PDP-10 के 18-बिट वर्ड स्मृति पता द्वारा सीमित था, और कार्यान्वयन को सरल और सरल बनाए रखने के लिए काफी प्रयास किए गए थे। मल्टिक्स मैक्लिस्प के पास पता स्थान बहुत बड़ा था, लेकिन उपयोग करना महंगा था। जब पीडीपी-10 की स्मृति और प्रसंस्करण शक्ति पार हो गई थी, तो लिस्प मशीन का आविष्कार किया गया था: लिस्प मशीन लिस्प मैकलिस्प का प्रत्यक्ष वंशज है। कई अन्य लिस्प (प्रोग्रामिंग लैंग्वेज) बोलियां भी उपयोग में थीं, और समुदाय को एकजुट करने की आवश्यकता के परिणामस्वरूप आधुनिक सामान्य लिस्प भाषा का निर्माण हुआ।

नाम

Maclisp को प्रोजेक्ट MAC के लिए नामित किया गया था, और यह Apple के Macintosh (Mac) कंप्यूटर से संबंधित नहीं है, जो इसे दशकों या जॉन मैककार्थी (कंप्यूटर वैज्ञानिक) से पहले का है। Macintosh के लिए विभिन्न लिस्प प्रणालियों में Maclisp से कोई विशेष समानता नहीं है।[9]


संदर्भ

  1. 1.0 1.1 Levy, Steven (1984). Hackers: Heroes of the Computer Revolution. Doubleday. ISBN 0-385-19195-2.
  2. Project MAC Progress Report IV: July 1966 to July 1967 (PDF) (Report). n.d. p. 19. Archived from the original (PDF) on March 8, 2016. The higher-level language used for most of the vision laboratory program is the PDP-6 LISP System. This system is based chiefly on the LISP 1.5 programming language, but has been extensively modified in a number of ways. These include many new functions and services, including facilities for linking with programs written in other languages.
  3. Moon 1974, p. 1
  4. Moon 1974, p. 47
  5. Lisp 1.5 p. 13, evaluating an atom e in the environment a is done with (cdr (assoc e a)). That involves a linear search of the association list a. A more involved description with global constants and errors is given on p. 71; it does a linear search of the property list before searching the association list.
  6. Maclisp uses defun; Lisp 1.5 uses define.
  7. Moon 1974, p. 107; the autoload property.
  8. Pitman, Kent (December 16, 2007). "The Revised Maclisp Manual (The Pitmanual), Sunday Morning Edition". maclisp.info. HyperMeta, Inc. Declarations and the Compiler, Concept "Variables". Retrieved October 20, 2018. If the variable to be bound has been declared to be special, the binding is compiled as code to imitate the way the interpreter binds variables.
  9. Pitman, Kent (December 16, 2007). "The Revised Maclisp Manual (The Pitmanual), Sunday Morning Edition". maclisp.info. HyperMeta Inc. p. 1 FAQ q1. Retrieved October 20, 2018. Project MAC had nothing to do with the Apple "Mac". And neither did MACLISP.


बाहरी संबंध