Lisp.Qxd 17/10/05 12:42 Página 46

Total Page:16

File Type:pdf, Size:1020Kb

Lisp.Qxd 17/10/05 12:42 Página 46 46-49 lisp.qxd 17/10/05 12:42 Página 46 Ciencia e investigación Un lenguaje de casi 50 años de historia LLiisspp ((II)) David Arroyo Menéndez, José E. Marchesi finanzas, y también en la educación en ingeniería informática y, por supuesto, en investigación. Lisp es una familia de lenguajes de El nombre Lisp viene de “Procesamiento de Listas”. La estructura de datos de listas y las primitivas para programación con una larga historia. manejarlas son el denominador común de todos los Desarrollado originalmente como una dialectos Lisp, como ya explicaremos más adelante. Otras características comunes de los dialectos Lisp implementación de un modelo incluyen el tipado dinámico, el soporte a la progra- computacional, rápidamente se mación funcional y la habilidad para manejar códi- go fuente como datos. convirtió en el lenguaje favorito para Los lenguajes Lisp tienen una apariencia rápida- hacer investigación en el ámbito de la mente reconocible. El código del programa es escri- to usando la misma sintaxis de listas: la sintaxis de inteligencia artificial. S-expressions. Cada subexpresión en un programa (o estructura de datos) está rodeada con paréntesis. Lisp ha sido pionero en el uso de estructuras de árbol Esto hace que los lenguajes Lisp sean fáciles de par- (S-Expressions), recolección de basura, intérpretes y sear y también de metaprogramar, esto es, crear pro- programación funcional. Hoy dialectos Lisp son usa- gramas que escriben otros programas. Esta es la dos en muchos campos, desde el desarrollo web a las mayor razón para su gran popularidad en los años 70 y 80; los programadores de inteligencia artificial Tabla 1. creyeron que esta característica de Lisp resolvería fácilmente grandes problemas de la IA. Número de resultados en Google en agosto de 2005 Lisp se especificó en 1958, convirtiéndose en el Búsqueda Número de resultados segundo lenguaje de programación de alto nivel que “programming language” java 3.360.000 se usa hoy; solo Fortran es más viejo. Al igual que “programming language” c -c++ 2.790.000 Fortran, Lisp ha cambiado bastante desde sus prime- “programming language” c++ 2.020.000 ros día y numerosos dialectos han existido a través “programming language” perl 1.010.000 de su historia. Hoy, los dialectos Lisp más usados “programming language” python 881.000 para programar son Common Lisp y Scheme. “programming language” shell 568.000 “programming language” lisp 573.000 Historia de Lisp “programming language” ruby 292.000 “programming language” tcl 249.000 Information Processing Language (IPL) fue el primer lenguaje de Inteligencia Artificial (IA), desde 1955 o 1956, y ya incluía muchos de los conceptos, tales Tabla 2. Relación de lenguajes y número de proyectos como procesamiento de listas y facilidades para la recursividad, que fueron usadas en Lisp. en Sourceforge en agosto de 2005 Lisp fue inventado por John McCarthy en 1958 Lenguaje Número de proyectos mientras él estaba en el MIT. McCarthy publicó su C++ 16.111 diseño en un artículo de Comunicaciones del ACM Java 15.849 en 1960, titulado “Recursive Functions of Symbolic C 15.396 Expressions and Their Computation by Machine, Part Perl 6.039 I” (Funciones Recursivas de Expresiones Simbólicas y Python+Zope 4.409 su Computación por Máquinas, Parte I). Curiosa- C# 2.646 mente la segunda parte nunca fue publicada. Él Unix Shell 1.767 mostraba que con unos pocos simples operadores y Tcl 892 una notación para funciones, se puede construir un Ruby 365 lenguaje de programación completo. Scheme 195 La notación original usada por McCartyhy estaba Common Lisp 18 basada en “M-expressions”. Esta fue rápidamente Emacs Lisp 9 abandonada en favor de las S-expressions que él MUNDO nº84 Linux 46 http://digital.revistasprofesionales.com 46-49 lisp.qxd 17/10/05 12:42 Página 47 Ciencia e investigación Lisp (I) programas. Las técnicas de construcción de Lisp no es tan usado como otros lenguajes; sin compiladores modernos y las gigantescas embargo, constituye una pieza fundamental capacidades de los computadores de hoy en para entender la historia de la informática y día han hecho esta especialización hardware gente bastante inteligente sigue escribiendo innecesaria y hoy disfrutamos de entornos código Lisp. Lisp mucho más eficientes que otros lengua- jes más populares. Lisp como lenguaje de extensión Entre 1980 y 1990, se hace un gran esfuer- zo para unificar los numerosos dialectos Lisp Lisp ha sido usado múltiples veces como len- dentro de un lenguaje simple. El nuevo len- guaje de extensión. Los ejemplos más popu- guaje, liderado por Guy Steele, se llamaría lares en la informática han sido Emacs y Common Lisp y era esencialmente un super- AutoCAD, pero no han sido los únicos: gimp, conjunto de los dialectos reemplazados. En gnucash, texmacs son aplicaciones intere- 1994, ANSI publicaba el estándar Common santes para las que nos será útil haber apren- Lisp, “ANSI X3.226-1994 Information dido lisp. Technology Programming Language Common La primera comunidad que se generó alre- Lisp”. En esos momentos el mercado que había dedor de software libre se generó alrededor entorno a Lisp ya era bastante pequeño, com- de Emacs y el primer proyecto de GNU fue parado con el de unos años atrás. GNU Emacs. No es un proyecto cualquiera, es Mientras eso ocurría Richard Stallman un proyecto importante. Tened en cuenta anunció en 1983 el proyecto GNU, para que más del 90% de lo que hacemos cuando crear un nuevo sistema operativo libre. estamos delante del ordenador es editar Se puede automatizar trabajo en Puesto que lo que tendría que hacer el texto, así es que la herramienta con la que The Gimp gracias a scripts en Scheme Lisp. 90% del tiempo que empleara con la compu- hacerlo tiene que ser cómoda. tadora para llevar a cabo su proyecto sería Cuando Stallman creó el proyecto GNU se le originalmente propuso como una representa- editar texto decidió empezar creando un edi- pasó por la cabeza hacerlo todo con Lisp, pero ción interna. Por ejemplo, la M-expresssion tor llamado Emacs (editor de macros) y con por razones de eficiencia y dada la velocidad de car[cons[A,B]] es equivalente a la S-expression Emacs surgió Emacs Lisp, también conocido las máquinas de aquel entonces se decantó por (car (cons A B)). como elisp. De este modo, el primer progra- hacer las herramientas de bajo nivel en C. A Lisp fue originalmente implementado por ma libre fue desarrollado por una comunidad pesar de eso en GNU habría Lisp, y así fue. Steve Russell en un ordenador IBM 704 y los de programadores Lisp. En 1990 el editor y el Emacs tiene un pequeño núcleo escrito en dos lenguajes de macros para esta máquina compilador de GNU estaría completos. C; no obstante, todos los modos están escritos llegaron a ser las operaciones primitivas para En 1986 en el mundo del software privati- en Lisp y así cambiar el comportamiento de descomposición de listas: car (Contents of vo surge otro lenguaje específico de la aplica- cualquier cosa que estés haciendo en Emacs Address Register) y cdr (Contents of ción: AutoLisp (renombrado posteriormente significa evaluar Lisp, lo cual se hace de una Decrement Register). Los dialectos Lisp todavía como VisualLisp), un lenguaje para extender manera tan natural e integrada con el editor usan car y cdr para las operaciones que AutoCAD (un programa verdaderamente que a veces es incluso usando el ratón. devuelven el primer ítem de una lista y el resto extendido en ingeniería y arquitectura) y que De este modo, se pueden crear abreviaturas de la misma respectivamente. ha generado mucho código Lisp. para supercalifragilísticoespialidoso que es El primer compilador de Lisp completo y En 1995 en GNU están pensando en hacer una palabra larga que por una serie de razo- escrito en Lisp fue implementado en 1962 aplicaciones para el escritorio y les gustaría nes vas a tener que escribir muchas veces en por Tim Hart y Mike Levin. (AI Memo 39, 767 tener un lenguaje de programación para distintos documentos. También puedes crear- kB PDF (ftp://publications.ai.mit.edu/ai- poder escribirlas de un modo fácil y extensible te fácilmente una función Lisp para comentar publications/pdf/AIM-039.pdf)). Este compi- como en el editor de gnu, es decir, GNU el código de un lenguaje raro con el que vas a lador ya introducía el modelo Lisp de compi- Emacs. En ese momento TCL está sirviendo tener que programar durante unos meses y al lación incremental, en el que las funciones muy bien para ese propósito. A Richard que además te gustaría asociarle un atajo de compiladas e interpretadas pueden mezclar- Stallman no le gustó básicamente porque, teclado. Todo esto y muchísimo más es tan se libremente. aunque hereda algunas ideas de Lisp, TCL no sencillo como escribir y evaluar Lisp sin tener Desde su concepción, Lisp estaba estrecha- es Lisp y decidieron crear Scheme, el lenguaje que apagar el Emacs. Y cuando decimos sen- mente conectado con la comunidad investiga- de extensibilidad estándar para GNU. cillo es que es sencillo; Stallman comentaba dora en inteligencia artificial. En los años 70, No se eligió Common Lisp porque parecía que incluso administrativas acababan creando se empieza a comercializar la IA y el rendi- bastante largo y prefirieron algo más sencillo. programas Lisp debido a que nadie les decía miento de los sistemas Lisp existentes llega a La idea era tener un intérprete de Scheme que estaban programando, que les soluciona- cuestionarse seriamente, en parte debido a diseñado para ser enlazado dentro de aplica- ba problemas reales y que había una buena utilizar un recolector de basura y en parte por- ciones tal y como TCL lo hacía. El principal documentación integrada.
Recommended publications
  • Towards Intelligent Structures: Active Control of Buckling
    Towards Intelligent Structures: Active Control of Buckling Andrew A. Berlin Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Doctor of Philosophy at the Massachusetts Institute of Technology May, 1994 Abstract The buckling of compressively-loaded members is one of the most important factors limiting the overall strength and stability of a structure. I have developed novel techniques for using active control to wiggle a structural element in such a way that buckling is prevented. I present the results of analysis, simulation, and experimentation to show that buckling can be prevented through computer-controlled adjustment of dynamical behavior. I have constructed a small-scale railroad-style truss bridge that contains compressive members that actively resist buckling through the use of piezo-electric actuators. I have also constructed a prototype actively controlled column in which the control forces are applied by tendons, as well as a composite steel column that incorporates piezo-ceramic actuators that are used to counteract buckling. Active control of buckling allows this composite column to support 5.6 times more load than would otherwise be possible. These techniques promise to lead to intelligent physical structures that are both stronger and lighter than would otherwise be possible. Thesis Supervisor: Gerald Jay Sussman Professor of Electrical Engineering 1 Dedicated to Dorit with Love 2 Acknowledgments This work would not have been possible without the continual support, understanding, time, jokes, and adventures provided by my wonderful wife, Dorit Sonia Berlin. Thanks, Doey! The other people who deserve a lot of credit, thanks, and even congratulations now that it's finally done, are my parents, whose constant support and encouragement made a big difference.
    [Show full text]
  • Asynchronous Logic Automata David Allen Dalrymple
    Asynchronous Logic Automata by David Allen Dalrymple B.S. Mathematics, University of Maryland Baltimore County (2005) B.S. Computer Science, University of Maryland Baltimore County (2005) Submitted to the Program in Media Arts and Sciences, School of Architecture and Planning, in partial fulfillment of the requirements for the degree of Master of Science in Media Technology at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY June 2008 c Massachusetts Institute of Technology 2008. All rights reserved. Author Program in Media Arts and Sciences May 9, 2008 Certified by Neil A. Gershenfeld Director, Center for Bits and Atoms Professor of Media Arts and Sciences Thesis Supervisor Accepted by Prof. Deb Roy Chair, Program in Media Arts and Sciences 2 Asynchronous Logic Automata by David Allen Dalrymple Submitted to the Program in Media Arts and Sciences, School of Architecture and Planning, on May 9, 2008, in partial fulfillment of the requirements for the degree of Master of Science in Media Technology Abstract Numerous applications, from high-performance scientific computing to large, high- resolution multi-touch interfaces to strong artifical intelligence, push the practical physical limits of modern computers. Typical computers attempt to hide the physics as much as possible, running software composed of a series of instructions drawn from an arbitrary set to be executed upon data that can be accessed uniformly. However, we submit that by exposing, rather than hiding, the density and velocity of information and the spatially concurrent, asynchronous nature of logic, scaling down in size and up in complexity becomes significantly easier. In particular, we introduce “asynchronous logic automata”, which are a specialization of both asynchronous cellular automata and Petri nets, and include Boolean logic primitives in each cell.
    [Show full text]
  • SITE CONTROLLER: a System for Computer-Aided Civil Engineering and Construction
    SITE CONTROLLER: A system for computer-aided civil engineering and construction. by Philip Greenspun Abstract A revolution in earthmoving, a $100 billion industry, can be achieved with three components: the GPS location system, sensors and computers in earthmoving vehicles, and SITE CONTROLLER, a central computer system that maintains design data and directs operations. The first two components are widely available; I built SITE CONTROLLER to complete the triangle and describe it here. Civil engineering challenges computer scientists in the following areas: computational geometry, large spatial databases, floating-point artihmetic, software reliability, management of complexity, and real-time control. SITE CONTROLLER demonstrates that most of these challenges may be surmounted by the use of state-of-the-art algorithms, object databases, software development tools, and code-generation techniques. The system works well enough that Caterpillar was able to use SITE CONTROLLER to supervise operations of a 160-ton autonomous truck. SITE CONTROLLER assists civil engineers in the design, estimation, and construction of earthworks, including hazardous waste site remediation. The core of SITE CONTROLLER is a site modelling system that represents existing and prospective terrain shapes, road and property boundaries, hydrology, important features such as trees, utility lines, and general user notations. Around this core are analysis, simulation, and vehicle control tools. Integrating these modules into one program enables civil engineers and contractors to use a single interface and database throughout the life of a project. This area is exciting because so much of the infrastructure is in place. A small effort by computer scientists could cut the cost of earthmoving in half, enabling poor countries to build roads and rich countries to clean up hazardous waste.
    [Show full text]
  • IBM EX. 1006 1 of 4 Scalable Display Technologies 1/2004 – October 2014 Position: President, Chairman, and Co-Founder
    Curriculum Vitae Rajeev Surati Ph.D. 62 Putnam Ave Cambridge Tel: +1508 472 5319 . MA, 02139 E-mail: [email protected] Profile: MIT PhD technologist in Electrical Engineering and Computer Science. Broad academic and business knowledge. Invented and patented several basic internet, computer- related, and display technologies and subsequently formed and sold companies based on these technologies to large corporations. Experienced with Internet(database backed web sites, search, e-commerce credit card implementation, instant messaging), compilers, and display technologies including projector-camera systems, peer-to-peer, instant messaging, pub sub systems, HTTP, TCP, UDP, affiliate marketing, click-through models, subscription models, search optimization, caching, relational database community-based web sites, social networking, computer graphics, digital image warping etc. Such work in these areas I have done is pioneering. Additionally, I have participated in standards processes. I have a great understanding of the history and evolution of many of the technologies in these areas. Having authored at least 6 patents and 2 others in process, been a participant in patent cases, and been the target of infringement in my businesses, I have a great working knowledge of both the importance and subtleties related to IP. Lastly, because I have founded 3 successful companies and sold 2 companies to both Microsoft and NameMedia(godaddy.com), and advised several other companies, I have extensive contacts in the industry and a business background that encompasses building a technology business from the ground up. I am experienced in writing code in C++, Java, C, Postscript, C#, etc Expert Experience: Worked on patent related cases for British Telecom, Apple, IBM, Triplay (against Facebook), Ford etc… as an expert related to e-commerce, telecommunication systems, database backed web sites, photography, real-time https, two-way and instant messaging.
    [Show full text]
  • Is an Oxymoron 9780262312325 Lisa Gitelman 2013 MIT Press
    TITLE ISBN Authors Copyright Year Publisher "Raw Data" Is an Oxymoron 9780262312325 Lisa Gitelman 2013 MIT Press Nick Montfort; Patsy Baudoin; John Bell; Ian Bogost; Jeremy Douglass; Mark C. Marino; Michael Mateas; Casey Reas; 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 9780262305501 Mark Sample; Noah Vawter 2012 MIT Press 2D Object Detection and Recognition:Models, Algorithms, and Networks 9780262267090 Yali Amit 2002 MIT Press 3DTV Content Capture, Encoding and Transmission:Building the Transport Infrastructure for Commercial Services 9780470874226 Daniel Minoli 2010 Wiley-IEEE Press Professor Lajos Hanzo; Jonathan Blogh; 3G, HSPA and FDD versus TDD Networking:Smart Antennas and Adaptive Modulation 9780470754290 Song Ni 2008 Wiley-IEEE Press Wiley-IEEE Standards 802.1aq Shortest Path Bridging Design and Evolution:The Architect's Perspective 9781118164327 David Allan; Nigel Bragg 2012 Association A Biosystems Approach to Industrial Patient Monitoring and Diagnostic Devices 9781598292954 Gail Baura 2008 Morgan & Claypool A Case for Climate Engineering 9780262317788 David Keith 2013 MIT Press A Century of Electrical Engineering and Computer Science at MIT, 1882-1982 9780262291033 Karl L Wildes; Nilo A Lindgren 1985 MIT Press A Century of Honors: The First One-Hundred Years of Award Winners, Honorary Members, Past Presidents, and Fellows of the Institute 9780470616369 1984 Wiley-IEEE Press A Concise Introduction to Models and Methods for Automated Planning 9781608459704 Hector Geffner; Blai Bonet 2013 Morgan & Claypool A Concise Introduction to Multiagent Systems and Distributed Artificial Intelligence 9781598295276 Nikos Vlassis 2007 Morgan & Claypool A Few Good Men From Univac 9780262256599 David E. Lundstrom 1990 MIT Press A Field Guide to Dynamical Recurrent Networks 9780470544037 John F.
    [Show full text]
  • About Lisp ...Or Lambda, the Ultimate Lecture
    About Lisp ...or Lambda, the ultimate lecture Yoni Rabkin [email protected] This work is licensed under the Creative Commons Attribution 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.5/. – p. 1 Abstract First we shall introduce symbolic, conditional and meta expressions and their recursive definitions with the λ-notation. Then we will briefly describe how such expressions might be represented by a computer. We shall introduce the Lisp REPL and use it to explore a number of basic Lisp paradigms such as closures, functional programming and Lisp macros. Finally we shall look at the past and present of Lisp as a language. This work is licensed under the Creative Commons Attribution 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.5/. – p. 2 What is Lisp? What is Lisp? What can we say generally about Lisp? “Lisp is a programmable programming language” (a) There are many Lisps, standardised and not. Lisp has very little syntax. Lisp’s roots are in the mathematical representation of recursive functions [2]. Doesn’t have to look like: λf · (λx · f(xx))(λx · f(xx)) (a)John Foderaro, CACM, September 1991 This work is licensed under the Creative Commons Attribution 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.5/. – p. 3 Conditional Expressions (p1 → e1, ··· ,pn → en) It may be read, “if p1 then e1 otherwise if p2 then e2,··· , otherwise if pn then en” where the p’s are propositional expressions and the e’s are expressions of any kind.
    [Show full text]
  • Task Force on Taxation of the Digital Economy
    MINISTERE DE L’ECONOMIE MINISTERE DU REDRESSEMENT ET DES FINANCES PRODUCTIF Task Force on Taxation of the Digital Economy Report to the Minister for the Economy and Finance, the Minister for Industrial Recovery, the Minister Delegate for the Budget and the Minister Delegate for Small and Medium-Sized Enterprises, Innovation and the Digital Economy by PIERRE COLLIN NICOLAS COLIN Conseiller d’État Inspecteur des finances – JANUARY 2013 – "We're working on a Web service1 to get rid of tax lawyers, but it's not working yet." — Jeff BEZOS, CEO of Amazon.com, Inc., 20062 “I am very proud of the structure that we set up. We did it based on the incentives that the governments offered us to operate.” — Eric SCHMIDT, executive chairman of Google Inc., 20123 1 “A Web service is a software system designed to support interoperable machine-to-machine interaction over a network” (Wikipedia). A software framework or a Web platform brings together several Web services that external developers can access through application programming interfaces (API). http://fr.wikipedia.org/ 2 Quoted by China MARTENS, “Bezos offers a look at 'hidden Amazon'”, Computer World, 27 September 2006. http://www.computerworld.com/ 3 Quoted by La Nouvelle République, “Le patron de Google "très fier" de son système d'"optimisation" fiscal”, 15 December 2012. http://www.lanouvellerepublique.fr/ EXECUTIVE SUMMARY The digital revolution has taken place. It has given rise to a digital economy that challenges our concept of value creation. The digital economy is actually based on
    [Show full text]
  • Evolution of Emacs Lisp
    Evolution of Emacs Lisp STEFAN MONNIER, Université de Montréal, Canada MICHAEL SPERBER, Active Group GmbH, Germany 74 Shepherd: Brent Hailpern, IBM Research, USA While Emacs proponents largely agree that it is the world’s greatest text editor, it is almost as much a Lisp machine disguised as an editor. Indeed, one of its chief appeals is that it is programmable via its own programming language. Emacs Lisp is a Lisp in the classic tradition. In this article, we present the history of this language over its more than 30 years of evolution. Its core has remained remarkably stable since its inception in 1985, in large part to preserve compatibility with the many third-party packages providing a multitude of extensions. Still, Emacs Lisp has evolved and continues to do so. Important aspects of Emacs Lisp have been shaped by concrete requirements of the editor it supports as well as implementation constraints. These requirements led to the choice of a Lisp dialect as Emacs’s language in the first place, specifically its simplicity and dynamic nature: Loading additional Emacs packages orchanging the ones in place occurs frequently, and having to restart the editor in order to re-compile or re-link the code would be unacceptable. Fulfilling this requirement in a more static language would have been difficult atbest. One of Lisp’s chief characteristics is its malleability through its uniform syntax and the use of macros. This has allowed the language to evolve much more rapidly and substantively than the evolution of its core would suggest, by letting Emacs packages provide new surface syntax alongside new functions.
    [Show full text]
  • A Security Kernel Based on the Lambda-Calculus
    A Security Kernel Based on the Lambda-Calculus by Jonathan Allen Rees S.M. Comp. Sci., Massachusetts Institute of Technology (1989) B.S. Comp. Sci., Yale College (1981) Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Doctor of Philosophy at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY February 1995 @ Massachusetts Institute of Technology, 1995 The author hereby grants to MIT permission to reproduce and to distribute copies of this thesis document in whole or in part. Signature of Author ... .............................. ............. Department of Electrical Engineering and Computer Science /7 - _ January 31, 1995 Certified by ...... ..........-...- .aI. ............. Gerald Jay Sussman Matsushita Professor of Electrical Engineering - 01 ,. Thesis Supervisor Accepted by ............ War. .- . v v....................VV•.-. ). Frederic R. Morgenthaler Chairman, Departmental C1 mittee on Graduate Students MASSACHUSETTS INSTITUTE OF TFrP'4l fl9y APR 13 1995 A Security Kernel Based on the Lambda-Calculus by Jonathan Allen Rees Submitted to the Department of Electrical Engineering and Computer Science on January 31, 1995, in partial fulfillment of the requirements for the degree of Doctor of Philosophy Abstract Cooperation between independent agents depends upon establishing a degree of se- curity. Each of the cooperating agents needs assurance that the cooperation will not endanger resources of value to that agent. In a computer system, a computational mechanism can assure safe cooperation among the system's users by mediating re- source access according to desired security policy. Such a mechanism, which is called a security kernel, lies at the heart of many operating systems and programming en- vironments. The dissertation describes Scheme 48, a programming environment whose design is guided by established principles of operating system security.
    [Show full text]
  • Quotes: a Actually, I Think What Would Be Most Appropriate Is If We Were All to Shut up Now
    1 THE GEEK BOOK: quotes from the cyber world https://www.scribd.com/doc/25068805/THE-GEEK-BOOK-quotes-from-the-cyber-world THE NERD BOOK quotes from the cyberworld: a to z & beyond a collection of primary sources which attempt to give the reader insight on why programmers, network administrators, helpdesk dweebs and other assorted nerds are so……well, nerdy. Redistributed by Dale Andersen(@JohanSilentio) © copyright 1991-2010 Faisal N. Jawdat. All rights reserved. Redistribution and use in any form, with or without modification, is permitted. Neither the name of Faisal N. Jawdat nor the names of the contributors may be used to endorse or promote products derived from this software without specific prior written permission. This document is provided by Faisal N. Jawdat and contributors "as is'' and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. in no event shall Faisal N. Jawdat or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Note that use of individual Quote File entries are not covered under the license terms above, the terms above apply to redistribution of the file as a whole and/or substantial excerpts.
    [Show full text]
  • Structure and Interpretation of Computer Programs Free
    FREE STRUCTURE AND INTERPRETATION OF COMPUTER PROGRAMS PDF Harold Abelson,Gerald Jay Sussman,Julie Sussman | 688 pages | 06 Aug 1996 | MIT Press Ltd | 9780262510875 | English | Cambridge, Mass., United States Structure and Interpretation of Computer Programs It is known as the Wizard Book Structure and Interpretation of Computer Programs hacker culture. The MIT Press published the first edition inand the second edition in It was formerly used as the textbook for MIT's introductory course in electrical engineering and computer science. SICP focuses on discovering general patterns for solving specific Structure and Interpretation of Computer Programs, and building software systems that make use of those patterns. The book describes computer science concepts using Schemea dialect of Lisp. It also uses a virtual register machine and assembler to implement Lisp interpreters and compilers. The book was used as the textbook for MIT's former introductory programming course, 6. Byte recommended SICP "for professional programmers who are really interested in their profession". The magazine said that the book was not easy to read, but that it would expose experienced programmers to both old and new topics. SICP has been influential in computer science education, and several later books have been inspired by its style. From Wikipedia, the free encyclopedia. Computer science textbook. Structure and Interpretation of Computer Programs Press. Spring Retrieved He said that he'd actually been trying to have 6. Understanding the principles is not essential for an introduction to the subject matter anymore. He sees 6. MIT Touchstone. Lisp programming language. Automatic storage management Conditionals Dynamic typing Higher- order functions Linked lists M-expressions deprecated Read—eval—print loop Recursion S-expressions Self-hosting compiler Tree data structures.
    [Show full text]
  • Software Engineering for Internet Applications Eve Andersson
    Softwar computer science/software engineering e Engin Software Engineering for Internet Applications Eve Andersson Philip Greenspun eer Andrew Grumet in g for Software Engineering After completing this self-contained course on server-based Internet applications software, students who start with only the knowledge of how to write and debug a computer program will have learned how to build Interne Web-based applications on the scale of Amazon.com. Unlike the desktop applications that most students for Internet Applications have already learned to build, server-based applications have multiple simultaneous users. This fact, coupled with the unreliability of networks, gives rise to the problems of concurrency and transactions, which students t A pplic learn to manage by using the relational database system. After working their way to the end of the book, students will have the skills to take vague and ambitious at specifications and turn them into a system design that can be built and launched in a few months. They ions will be able to test prototypes with end-users and refine the application design. They will understand how to meet the challenge of extreme business requirements with automatic code generation and the use of open- source toolkits where appropriate. Students will understand HTTP, HTML, SQL, mobile browsers, VoiceXML, data modeling, page flow and interaction design, server-side scripting, and usability analysis. The book, which originated as the text for an MIT course, is suitable for classroom use and will be a useful Ande reference for software professionals developing multi-user Internet applications. It will also help managers evaluate such commercial software as Microsoft Sharepoint of Microsoft Content Management Server.
    [Show full text]