Skip to main content

스몰토크 목차 역사와 영향 특징 헬로 월드 프로그램 구현 관련 단체 같이 보기 외부 링크 둘러보기 메뉴Smalltalk.org스몰토크ehsh87003115030104092cb12158691c(데이터)

명령형 프로그래밍 언어객체 지향 프로그래밍 언어1972년 개발된 프로그래밍 언어스몰토크 프로그래밍 언어 계열크로스 플랫폼 자유 소프트웨어자유 컴파일러와 인터프리터


동적 형반영객체 지향프로그래밍 언어제록스 파크앨런 케이댄 잉갤스테드 캘러에이들 골드버그리스프로고스케치패드시뮬라Ruby오브젝티브-CSelf자바Dylan애플스크립트파이썬Scala펄 6Common List Object System매킨토시그래픽 사용자 인터페이스GUI마우스제록스 파크루비시사이드












스몰토크




위키백과, 우리 모두의 백과사전.






둘러보기로 가기
검색하러 가기
















스몰토크
패러다임
객체 지향
발표년도
1970년대
설계자
앨런 케이(Alan Kay), Dan Ingalls, Adele Goldberg
자료형 체계
동적
주요 구현체
스퀵, 비주얼웍스, visualage for smalltalk
영향을 받은 언어
리스프, 시뮬라, 스케치 패드, 로고 (프로그래밍 언어)
영향을 준 언어
오브젝티브 C, 자바, 스크래치

스몰토크(Smalltalk)는 동적 형, 반영을 지원하는 객체 지향 프로그래밍 언어이다.




목차





  • 1 역사와 영향


  • 2 특징


  • 3 헬로 월드 프로그램


  • 4 구현


  • 5 관련 단체


  • 6 같이 보기


  • 7 외부 링크




역사와 영향


스몰토크는 제록스 파크(PARC)에서 앨런 케이, 댄 잉갤스, 테드 캘러, 에이들 골드버그가 만들었다. 1970년대의 리스프, 로고, 스케치패드와 시뮬라 등의 영향을 받았으며, 스몰토크-80부터 외부에 공개되어 퍼지기 시작했다. 스몰토크는 Ruby, 오브젝티브-C, Self , 자바 , Dylan , 애플스크립트 , 파이썬, Scala, 펄 6, Common List Object System 등의 프로그래밍 언어에 영향을 주었으며, 그 외에 매킨토시의 그래픽 사용자 인터페이스에도 영향을 주었다.


최초로 GUI를 제공하는 언어였으며, 이는 마우스가 스몰토크와 함께 제록스 파크(PARC)에서 연구되었던 것과도 관련이 있다.
현재 스몰토크를 사용하는 인구는 다른 객체지향 언어의 출현으로 소수에 불과하나, 루비를 비롯한 동적자료형 객체 지향 언어가 관심을 받고 있다.


최근에는 시사이드(Seaside)의 출현으로 HTML을 전혀 쓰지 않는 차세대 웹 프로그래밍의 비전을 보여주고 있기도 하다.



특징


스몰토크는 다음과 같은 특징들을 가지고 있다.


  • GUI 환경 , 컴파일러, 파서, 가비지 컬렉터가 스몰토크 코드로 되어 있다.

  • 모든 소스 코드가 노출되어 있으며, 편집이 가능하다.

  • 순수 객체지향 언어이다. C++나 자바와는 달리 원시 자료형이 없고, 모든 정수, 부동소수, 문자열, 블록을 포함한 모든 것이 객체며 클래스가 있다.

  • 명령어 블록(무명 함수)을 제공한다.

  • 클래스가 객체이다. 대부분의 프로그래밍 언어에서는 클래스는 정적 영역에 정의되고, 객체는 런타임, 즉 동적 영역에 보관된다. 하지만 스몰토크의 객체들은 모든 상태가 스몰토크 가상기계 속에서 “이미지”라 불리는 구조로 표현·저장된다.

  • 이미지기반이다. 소스코드는 소스파일에 보관되는 것이 아니라 이미지(메모리의 직렬화)로서 스냅샷 파일 속의 객체로서 보관된다.

스몰토크는 언어적 특징으로 인하여 독특한 개발문화를 가지고 있는데, 그것은 현재의 개발문화로도 전파되었다.



  • 리팩토링과 리팩토링 브라우저


  • 유닛 테스트(xUnit)


  • 익스트림 프로그래밍(XP, eXtreme Programming)

  • 디자인 패턴


헬로 월드 프로그램


Transcript show: 'Hello, world!'.


구현



  • 스퀵(Squeak)

  • 비주얼웍스(VisualWorks)

  • 돌핀 스몰토크(Dolphin Smalltalk)

  • 앰브라이 스몰토크(Ambrai Smalltalk)

  • F 스크립트(F-Script)


관련 단체


  • 유럽 스몰토크 사용자 그룹 (ESUG, European Smalltalk User Group)

  • 뷰포인트 연구소 (VPRI, Viewpoint Research Institute)

  • 하소 플라토 연구소(HPI, Hasso Plato Institute)


같이 보기


  • 오브젝티브-C


외부 링크



  • Smalltalk.org 스몰토크 공동체 사이트.


  • (영어) 스몰토크 - Curlie (DMOZ 기반)










원본 주소 "https://ko.wikipedia.org/w/index.php?title=스몰토크&oldid=24415756"













둘러보기 메뉴

























(RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.300","walltime":"0.360","ppvisitednodes":"value":4221,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":19509,"limit":2097152,"templateargumentsize":"value":2296,"limit":2097152,"expansiondepth":"value":8,"limit":40,"expensivefunctioncount":"value":0,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":265,"limit":5000000,"entityaccesscount":"value":1,"limit":400,"timingprofile":["100.00% 285.357 1 -total"," 52.90% 150.956 1 틀:프로그래밍_언어_정보"," 51.18% 146.058 1 틀:정보상자"," 16.83% 48.025 1 틀:전거_통제"," 16.46% 46.967 1 틀:주요_프로그래밍_언어"," 13.93% 39.750 1 틀:둘러보기_상자"," 13.62% 38.853 165 틀:정보상자/행"," 13.38% 38.184 1 틀:Dmoz"," 10.60% 30.242 1 틀:언어링크"," 9.45% 26.974 2 틀:언어_이름"],"scribunto":"limitreport-timeusage":"value":"0.042","limit":"10.000","limitreport-memusage":"value":1372417,"limit":52428800,"cachereport":"origin":"mw1244","timestamp":"20190712130038","ttl":2592000,"transientcontent":false););"@context":"https://schema.org","@type":"Article","name":"uc2a4ubab0ud1a0ud06c","url":"https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%AA%B0%ED%86%A0%ED%81%AC","sameAs":"http://www.wikidata.org/entity/Q235086","mainEntity":"http://www.wikidata.org/entity/Q235086","author":"@type":"Organization","name":"uc704ud0a4ubbf8ub514uc5b4 ud504ub85cuc81dud2b8 uae30uc5ecuc790","publisher":"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":"@type":"ImageObject","url":"https://www.wikimedia.org/static/images/wmf-hor-googpub.png","datePublished":"2006-07-27T11:30:02Z","dateModified":"2019-06-12T05:06:59Z"(RLQ=window.RLQ||[]).push(function()mw.config.set("wgBackendResponseTime":142,"wgHostname":"mw1254"););

Popular posts from this blog

Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript