Smalltalk est un langage de programmation orienté objet, réflexif et dynamiquement typé. Il fut l'un des premiers langages de programmation à disposer d'un environnement de développement intégré complètement graphique. Il a été créé en 1972. Il est inspiré par les langages Lisp et Simula. Il a été conçu par Alan Kay, Dan Ingals, Ted Kaehler, Adele Goldberg au Palo Alto Research Center de Xerox. Le langage a été formalisé en tant que Smalltalk-80 et est depuis utilisé par un grand nombre de personnes. Smalltalk est toujours activement développé. Smalltalk a été d'une grande influence dans le développement de nombreux langages de programmation, dont : Objective-C, , Java et Ruby. Un grand nombre des innovations de l'ingénierie logicielle des années 1990 viennent de la communauté des programmeurs Smalltalk, tels que les design patterns (appliqués au logiciel), l’extreme programming (XP) et le refactoring. Ward Cunningham, l'inventeur du concept du wiki, est également un programmeur Smalltalk. Il existe un grand nombre de variantes de Smalltalk, comme c'est souvent le cas avec les langages de programmation. Sans autre qualificatif, le mot Smalltalk est souvent utilisé pour désigner Smalltalk-80, la première version à avoir été rendue publique en 1980. Smalltalk est le produit d'un groupe de chercheurs conduit par Alan Kay au Palo Alto Research Center (PARC) de Xerox ; Alan Kay a conçu les premières versions de Smalltalk qui ont été implémentées par Dan Ingalls. La première version, nommée Smalltalk-71, a été créée en quelques matinées sur le pari qu'un langage de programmation basé sur l'idée d'envoi de messages inspirée de Simula pouvait être réalisé en « une page de code ». Les principaux concepts de Smalltalk sont : « Tout est objet » : les chaînes de caractères, les entiers, les booléens, les définitions de classes, les blocs de code, les piles et la mémoire sont représentés en tant qu'objets ; Tout est modifiable. Le langage permet par exemple de changer d'IDE en cours d'utilisation, sans recompiler ni redémarrer l'application.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Cours associés (5)
CS-452: Foundations of software
The course introduces the foundations on which programs and programming languages are built. It introduces syntax, types and semantics as building blocks that together define the properties of a progr
CS-107: Introduction to programming
Ce cours aborde les concepts fondamentaux de la programmation et de la programmation orientée objet (langage JAVA). Il permet également de se familisarier avec un environnement de développement inform
CS-320: Computer language processing
We teach the fundamental aspects of analyzing and interpreting computer languages, including the techniques to build compilers. You will build a working compiler from an elegant functional language in
Afficher plus
Séances de cours associées (30)
Atelier Coq: Types de données inductives et preuves
Couvre la définition d'un type de données inductives dans Coq et la façon de construire des preuves de manière interactive en utilisant des tactiques.
Implémentation efficace d'un langage dans GraalVM
Explore efficacement la mise en œuvre d'un nouveau langage de programmation dans GraalVM en utilisant l'évaluation partielle et le profilage d'accès à la mémoire.
Polymorphisme dans Coq: Structures de données et fonctions
Couvre le polymorphisme dans Coq, en se concentrant sur les structures de données et les fonctions telles que les listes, la longueur et l'ajout.
Afficher plus
Publications associées (30)

Scala 3 syntax rewriting

Mark Tropin

We present syntax rewriting rules that translate Scala 2 code into Scala 3. Two major syntactic changes are introduced: new control structure syntax and significant indentation. We describe the design and the implementation of these rules and evaluate thei ...
2024

Does scaling player size skew one’s ability to correctly evaluate object sizes in a virtual environment?

Ronan Boulic, Bruno Herbelin, Mathias Guy Delahaye

This paper presents the results of a study performed in order to evaluate whether a navigation technique, based on scaling the user’s avatar, impacts the user’s ability to correctly assess the size of virtual objects in a virtual environment. This study wa ...
Association for Computing Machinery2020

Better Generic Objects Counting When Asking Questions to Images: A Multitask approach for Remote Sensing Visual Question Answering

Devis Tuia, Benjamin Alexander Kellenberger, Sylvain Lobry

Visual Question Answering for Remote Sensing (RSVQA) aims at extracting information from remote sensing images through queries formulated in natural language. Since the answer to the query is also provided in natural language, the system is accessible to n ...
2020
Afficher plus
Personnes associées (1)
Concepts associés (28)
Alan Kay
Alan C. Kay, né le à Springfield au Massachusetts, est un informaticien américain. Après des études à l'université du Colorado à Boulder, il fait un PhD d'informatique à l'université d'Utah de 1966 à 1969, avec David Evans (son directeur de thèse) et Ivan Sutherland. Très influencé par le langage Simula, il définit alors le langage orienté objet « Flex » et une machine d'exécution de Flex, avec l'objectif de permettre une programmation très conviviale. Flex peut être considéré comme un précurseur de Smalltalk.
Logo (langage)
Logo est à la fois une philosophie de l'éducation et une famille de langages de programmation en constante évolution qui aident à la mettre en pratique. Le projet est né à la fin des années 1960 de la rencontre entre le courant cognitiviste en intelligence artificielle et des théories sur l’apprentissage issues de travaux de Jean Piaget et de ses conceptions en matière d’éducation.
Programmation orientée objet
La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
Afficher plus

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.