{{refimprove| date=March 2026}} '''ThingLab''' is a [[Visual programming language|visual]] [[Computer programming|programming]] [[Run-time system|environment]] implemented in [[Smalltalk]]<ref>{{cite journal |last1=Borning |first1=Alan |title=The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory |journal=ACM Transactions on Programming Languages and Systems |date=October 1981 |volume=3 |issue=4 |pages=353–387 |doi=10.1145/357146.35714 |doi-broken-date=22 April 2026 |url=https://dl.acm.org/doi/abs/10.1145/357146.357147 |access-date=March 11, 2026}}</ref> and designed at [[PARC (company)|Xerox PARC]] by [[Alan Borning]].

A conventional system allows a user to provide inputs that produce outputs. A constraint-oriented system, such as ThingLab, allows the user to provide arbitrary inputs or outputs, then solves for whatever is unknown. ThingLab is viewed as one of the earliest constraint-oriented systems.{{according to whom|date=November 2012}}

ThingLab is credited in "Fumbling the Future" as a big reason Xerox continued to fund computer development.

==References== {{Reflist}}

==External links== *{{cite book |last1=Borning |first1=A. |title=ThingLab A Constraint-oriented Simulation Laboratory |date=1979 |publisher=Stanford University |url=https://search.worldcat.org/title/1071783220 |access-date=March 11, 2026}} *[http://ftp.squeak.org/goodies/ThingLab/ ThingLab Sources]

{{DEFAULTSORT:Thinglab}} [[Category:Visual programming languages]] [[Category:Integrated development environments]]

{{compu-lang-stub}}