블로그 이미지
Leeway is... the freedom that someone has to take the action they want to or to change their plans.
maetel

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
  • total
  • today
  • yesterday

Category

'Computation'에 해당되는 글 61건

  1. 2007.02.28 The Java Technology
  2. 2007.02.25 Making Scents: aromatic output for HCI
  3. 2006.07.13 <HeadFirst Java>
  4. 2006.05.17 Java
  5. 2006.05.01 object-oriented programming
  6. 2006.04.26 Humane Interface (by Jef Raskin)
  7. 2006.04.11 shiffman's ICM @NYU
  8. 2006.03.31 프로그래밍 언어 개론
  9. 2006.03.27 Ajax and Web 2.0
  10. 2006.02.18 code search engine
  11. 2006.02.17 software term
2007. 2. 28. 01:15 Computation/Language

'Computation > Language' 카테고리의 다른 글

Java tutorials  (0) 2007.02.28
The Java™ Tutorials  (0) 2007.02.28
<HeadFirst Java>  (0) 2006.07.13
Java  (0) 2006.05.17
object-oriented programming  (0) 2006.05.01
posted by maetel
2007. 2. 25. 01:59 Computation/HCI
Making Scents: aromatic output for HCI
Full text html formatHtml (43 KB), pdf formatPdf (727 KB)
Source interactions archive
Volume 11 ,  Issue 1  (January + February 2004) table of contents
Making scents: aromatic output for HCI
Pages: 48 - 61  
Year of Publication: 2004
ISSN:1072-5520
Author
Joseph "Jofish" Kaye  Cornell Univ.

Link: http://doi.acm.org/10.1145/962342.964333


posted by maetel
2006. 7. 13. 19:57 Computation/Language
Head First Java: 뇌 회로를 자극하는 자바 학습법(개정판)

http://wickedlysmart.com/


http://www.javaranch.com/



 codeKitchensTiger



 J2SE(TM) Development Kit Documentation 5.0 docs


UML = Unified Modeling Language
http://en.wikipedia.org/wiki/Unified_Modeling_Language


PATH 환경 변수에 메인 자바 디렉토리 밑에 있는 /bin 디렉토리(자바 바이너리 파일이 들어 있음)를 추가해야 한다.
bin 디렉토리를 PATH 변수에 추가하면 된다.
그러면 명령행에서 "% javac" 명령을 입력했을 때 터미널에서 javac라는 자바 컴파일러를 바로 실행시킬 수 있다.

44p
main method 메소드
: 컴퓨터로 하여금 어떤 일을 하게 만드는 모든 일반적인 지시사항을 담고 있다


코드 -  선언문/순환문/분기문

45p
표준 순환 구조 - while, do-while, for

순환문 while
> 조건 테스트
> 부울 값 boolean ; 조건 테스트의 결과 ; true 또는 false
> 비교 연산자(<, >, ==)를 이용하여 변수의 값을 확인함으로써 간단한 부울 테스트 가능
   cf. == ; 동치 연산자 / = ; 대입 연산자
* 조건 테스트를 직접 할 수 있는 변수는 부울 변수 뿐.
* 부울 테스트는 괄호 안에 들어간다.
   eg. while (x==4) { }

 조건에 따른 분기문 if




'Computation > Language' 카테고리의 다른 글

The Java™ Tutorials  (0) 2007.02.28
The Java Technology  (0) 2007.02.28
Java  (0) 2006.05.17
object-oriented programming  (0) 2006.05.01
프로그래밍 언어 개론  (0) 2006.03.31
posted by maetel
2006. 5. 17. 12:19 Computation/Language
Java Technology      http://java.sun.com/
http://50001.com/sub/yopark.html


1. 자바란?

http://www.javastudy.co.kr/docs/yopark/chap01/chap01.html#1_1


journaled pic.png


사용자 삽입 이미지


Java Compiler 자바 컴파일러
: 자바 언어로 작성된 자바 프로그램을 중간 언어(intermediate language) 형태인 자바 바이트코드로 컴파일함


Java Byte code 자바 바이트코드
: 컴퓨터는 CPU 따라 서로 다른 기계어를 갖는다. 자바 바이트코드는 이러한 플랫폼에 상관없이 자바 가상머신에 의해 실행될 있도록 정의된 중간코드이다. (, 자바 가상머신에서 실행되는 기계어라고 생각하면 된다.) 따라서 자바 바이트코드로 컴파일되기만 하면, 자바 인터프리터인 자바 가상머신이 설치되어 있는 곳이면 어디에서든 실행시켜 있다. 

자바 바이트코드는 "write once, run anywhere"라는 말을 가능하게 준다. , 자바 언어를 사용하여 작성한 자바 프로그램을 플랫폼에 맞게 제공되는 자바 컴파일러를 통해서 바이트코드로 컴파일 있고, 바이트코드는 자바 가상머신이 있는 어떤 곳에서도 실행될 있다.


Java Interpreter 자바 인터프리터 또는 Java Virtual Machine 자바 가상머신
: 자바 바이트코드 명령어를 해석하고, 이를 자바 인터프리터가 설치되어 있는 플랫폼(윈도우, 유닉스, 매킨토시 ) 맞게 실행시켜 준다. 자바 인터프리터는 자바 바이트코드를 실행시켜 주기 위한 기능을 명세하고 있는 자바 가상머신을 구현해 놓은 것으로서 자바 가상머신과 같은 의미로 사용되며, 주로 자바 가상머신으로 많이 사용된다.


Java Virtual Machine = Java VM 자바 가상머신

: 자바 플랫폼의 기반을 이루며, 다양한 하드웨어 기반 플랫폼에 포팅porting 된다. 자바 가상머신은 기존의 운영체제들 또는 웹브라우저 여러 가지 플랫폼에 설치되어 사용될 있으며, 사용자는 자바 바이트코드로 컴파일된 자바 프로그램을 실행시키기 위해서 자바 가상머신을 이용하면 된다.

자바 가상머신은 JDK(Java Development Kit) 포함되어 있을 수도 있고, 자바 호환 브라우저 내에 내장되어 있을 수도 있으며, 또는 자바 칩과 같이 하드웨어에 직접 구현될 수도 있다.


Java Application Programming Interface = 자바 API

: 자바 API 운영체제에서 제공해 주는 라이브러리와 같은 것으로, 자바 프로그램을 개발하기 위해 사용할 있는 라이브러리 또는 클래스들이다. 자바 API 서로 관련된 클래스들을 묶어서 패키지 단위로 제공된다.


사용자 삽입 이미지


port

(v.) To move a program from one type of computer to another. To port an application, you need to rewrite sections that are machine dependent, and then recompile the program on the new computer. Programs that can be ported easily are said to be portable.


portable

(adj.) (1) When used to describe hardware, portable means small and lightweight. A portable computer is a computer small enough to carry. Portable computers include notebook and subnotebook computers, hand-held computers, palmtops, and PDAs.
(2) When used to describe software, portable means that the software has the ability to run on a variety of computers. Portable and machine independent mean the same thing—that the software does not depend on a particular type of hardware. 



Java 장점>
- 객체 지향적 Object-Oriented
자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(abstraction), 상속(inheritance), 다형성(polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있다. 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 있다.

- Architecture-neutral and Portable 아키텍처 중립적이고 이식성이 높다.


ref.

Gamelan     http://www.developer.com/java/

Javalobby   http://www.javalobby.org/

Focus on Java   http://java.about.com/  

Jars: Java Review Service    http://www.jars.com/

JavaBoutique   http://javaboutique.internet.com/

JavaWorld     http://www.javaworld.com/



Is Apple's OS X The Best (or even A Good) Platform for Java Development?


Getting Started with Java on Mac


Java Development Guide for Mac OS X

http://developer.apple.com/documentation/Java/Conceptual/Java14Development/index.html#//apple_ref/doc/uid/TP30001142



'Computation > Language' 카테고리의 다른 글

The Java™ Tutorials  (0) 2007.02.28
The Java Technology  (0) 2007.02.28
<HeadFirst Java>  (0) 2006.07.13
object-oriented programming  (0) 2006.05.01
프로그래밍 언어 개론  (0) 2006.03.31
posted by maetel
2006. 5. 1. 16:20 Computation/Language
*   Object-Oriented Programming Concepts

 object-oriented design
: A software design method that models the characteristics of abstract or real objects using classes and objects.

 Object
: a software bundle of related variables and methods. (Software objects are often used to model real-world objects you find in everyday life.)
A software object can represent real-world objects and abstract concepts like an event.
> what the software object knows is 'state' and what it can do is 'behavior'.

사용자 삽입 이미지


     variable
    : an item of data named by an identifier. Each variable has a type, such as int or Object, and a scope
    컴퓨터 프로그래밍 언어에서의 변수의 의미는, 컴퓨터 기억 장소를 가리키는 추상적인 표현방법입니다. 즉, 기억 장소의 주소를 상징화한 것입니다. 변수에 대한 정의가 아직까지 정확하게 이해되지 않는 분들이 많으시리라 생각됩니다.
다른 예에 빗대자면 이렇습니다. '동경 135˚, 북위 37.5˚'가 메모리 주소라면, '한국(Korea)'은 이를 나타내는 변수(정확히 변수의 이름)가 되는 것입니다.
변수는 다음과 같은 속성을 가지고 있습니다.

  이름(Name)
  변수의 호칭입니다.

 주소(Address)
  변수와 연결되는 메모리의 위치를 말합니다. 이 때, 변수가 나타내는 메모리 위치는 항상 동일하지 않습니다. 즉, 동일한 이름을 가진 변수라도 이 변수가 각기 다른 용도로 쓰일 때에는 서로 독립적인 개체로 보고, 이들 변수가 가리키는 주소도 서로 다르게 됩니다. 변수의 주소를 가끔 'l-value'라고도 하는데, 이는 할당문에서 변수가 좌변에 위치한다는 사실에 기인한 것입니다.

 값(Value)
  변수의 값은 변수와 연결된 메모리 위치에 담겨 있는 내용을 말합니다. 'Apple'이라는 이름을 가진 변수의 메모리 주소가 '00DE'이고, 이 공간에 저장된 내용이 실수 '3.41'라고 하면, 이것이 바로 변수의 값이 되는 것입니다. 변수의 값을 가리켜 'r-value'라고도 합니다.
 
 자료형(Type)  
  변수의 자료형은 변수가 가질 수 있는 값의 범위와 적용 가능한 연산자의 집합을 결정합니다. 예를 들어, C 언어에서 'int' 자료형은 -32768~32767 까지의 범위에 해당하는 값을 가질 수 있으며, 사칙연산 및 라이브러리 함수로 제공되는 연산자를 사용할 수 있습니다.
             scope
            :     
         class variable
        : A data item associated with a particular class as a whole--not with particular instances of the class. Class variables are defined in class definitions. = static field
         instance variable
        : Any item of data that is associated with a particular object. Each instance of a class has its own copy of the instance variables defined in the class.
             field
            : A data member of a class. Unless specified otherwise, a field is not static.

    - 수명에 따라
        정적 변수(Static Variable)
        스택 기반 동적 변수(Stack-Dynamic Variable)
        명시적 힙 기반 동적 변수(Explicit Heap-Dynamic Variable)
        묵시적 동적 변수(Implicit Dynamic Variable)
 
    - 실효 범위(:변수의 값을 참조할 수 있는 범위, 즉 변수가 사용되는 문장의 범위)에 따라
         local variable
        : A data item known within a block, but inaccessible to code outside the block. For example, any variable defined within a method is a local variable and can't be used outside the method.
        지역 변수는 변수가 선언된 프로그램 단일체나 함수 혹은 블록 안에서만 사용할 수 있는 변수
        cf. 스택 기반 동적 변수(Static Dynamic Variable)는 선언문이 실행될 때 저장 장소 바인딩이 이루어지고, 그에 대한 자료형은 정적으로 바인딩 됩니다. 다시 말해서, 변수가 프로그램 시작 시에 바인딩 되는 것이 아니라, 프로그램을 한 줄 한 줄 수행하고 있는 동안, 변수를 선언하는 코드 부분이 나오면 그제서야 변수에 대한 저장 장소가 할당되고, 바인딩이 이루어지는 것입니다. 이러한 함수에서 선언되는 변수들을 지역 변수(Local Variable)라고 하는데, 지역 변수들에 대한 기억 장소가 바로 이 때 할당되며 함수의 수행이 모두 끝나면 반환됩니다.  
         non-local variable
        : 비지역 변수는 전체 프로그램에 걸쳐 사용 가능한 변수를 말합니다.

         pointer variable
        : 포인터 변수는 저장 장소의 주소값과 그 저장 장소에 들어 있는 값을 모두 나타낼 수 있는 변수

     method
    : a function (subroutine) associated with an object. A function defined in a class. Unless specified otherwise, a method is not static.
         instance method
        : Any method that is invoked with respect to an instance of a class.
         class method
        : A method that is invoked without reference to a particular object. Class methods affect the class as a whole, not a particular instance of the class. = static method


Message
Software objects interact and communicate with each other using messages.

Class
: a blueprint or prototype that defines the variables and the methods common to all objects of a certain kind.

Inheritance
A class inherits state and behavior from its superclass. Inheritance provides a powerful and natural mechanism for organizing and structuring software programs.

Interface

: a contract in the form of a collection of method and constant declarations. When a class implements an interface, it promises to implement all of the methods declared in that interface.

'Computation > Language' 카테고리의 다른 글

The Java™ Tutorials  (0) 2007.02.28
The Java Technology  (0) 2007.02.28
<HeadFirst Java>  (0) 2006.07.13
Java  (0) 2006.05.17
프로그래밍 언어 개론  (0) 2006.03.31
posted by maetel
2006. 4. 26. 14:14 Computation/HCI
http://rchi.raskincenter.org/index.php?title=Home

http://ui.korea.ac.kr/Research_Book_Journalss.asp

posted by maetel
2006. 4. 11. 15:12 Computation
Introduction to Computational Media @NYU
by Daniel Shiffman
http://itp.nyu.edu/icm/shiffman/

daniel.shiffman@nyu.edu
http://www.shiffman.net


Introduction to Computational Media @NYU
Main ICM site   http://stage.itp.nyu.edu/ICM




Week 1: Intro to Computer Graphics


programming


programming; the process of creating steps for a computer to perform a desired task.


The order of the instructions is just as important as the instructions themselves!


algorithm; a procedure or formula for solving a problem


data; the stuff that the program knows about and operates on


IMPORTANT ALGORITHM CONSTRUCTS:


Sequence:  series of steps

Selection:  choice between alternative paths

Iteration:  repetition


Steps for developing your program


# Specify your idea / problem to solve.

# Design an algorithm (sequence of steps) for implementing the idea.

# Express the algorithm as a computer program in a programming language.

# Compile and run the program.



Processing


Processing is an open source programming language and environment for people who want to program images, animation, and sound. It is used by students, artists, designers, architects, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is developed by artists and designers as an alternative to proprietary software tools in the same domain.


Processing is an open project initiated by Ben Fry (Broad Institute) and Casey Reas (UCLA Design | Media Arts). Processing evolved from ideas explored in the Aesthetics and Computation Group at the MIT Media Lab.


* Processing is an extension of Java and supports many of the existing Java structures, but with a simplified syntax. The application runs locally and exports programs to Java applets, which may be viewed over the Internet.


# index.html -- html source for viewing the applet page

# filename.jar -- compiled applet classes

# filename.pde -- source code


ref.

The History of Computer Programming Languages

Software Structures




Week 2 - Interaction & Variation


a variable; a named pointer to a location in the computer's memory; a storage locker for data



# Variables must have a name.


# PRIMITIVE TYPES boolean: true or false

# char: 16 bit Unicode character (0-65535)


# byte: 8 bits, -128 to 127

# short: 16 bits, -32768 to 32767

# int: 32 bits, -2147483648 to 2147483647

# long: 64 bits, -big number to big number

# float: 32 bit floating point number

# double: 64 bit floating point number




'Computation' 카테고리의 다른 글

Name Server 변경  (0) 2007.05.18
physics engine  (0) 2007.05.03
Ajax and Web 2.0  (0) 2006.03.27
code search engine  (0) 2006.02.18
software term  (0) 2006.02.17
posted by maetel
2006. 3. 31. 02:26 Computation/Language



'Computation > Language' 카테고리의 다른 글

The Java™ Tutorials  (0) 2007.02.28
The Java Technology  (0) 2007.02.28
<HeadFirst Java>  (0) 2006.07.13
Java  (0) 2006.05.17
object-oriented programming  (0) 2006.05.01
posted by maetel
2006. 3. 27. 17:27 Computation

Title:  Ajax and Web 2.0

Date:  March 27, 2006 5:27 PM

Category:  Work

Tags:  web XML


Ajax = Asynchronous JavaScript and XML

: it is a term that describes a new approach to using a number of existing technologies together, including the following: HTML or XHTML, Cascading Style Sheets, JavaScript, the Document Object Model, XML, XSLT, and the XMLHttpRequest object. When these technologies are combined in the Ajax model, Web applications are able to make quick, incremental updates to the user interface without reloading the entire browser page. [Source: mozilla developer center]

Ajax is also seen written in all capital letters (AJAX). 



http://developer.mozilla.org/en/docs/AJAX

AJAX (Asynchronous JavaScript and XML) is a newly coined term for two powerful browser features that have been around for years, but were overlooked by many web developers until recently when applications such as Gmail, Google suggest, and Google Maps hit the streets.


The two features in question are that you can:


    * Make requests to the server without reloading the page

    * Parse and work with XML documents 


http://en.wikipedia.org/wiki/Ajax_%28programming%29


XML = Extensible Markup Language 확장성 생성 언어

: a specification developed by the W3C. XML is a pared-down version of SGML, designed especially for Web documents. It allows designers to create their own customized tags, enabling the definition, transmission, validation, and interpretation of data between applications and between organizations.

하이퍼텍스트 생성 언어(HTML) 대체할 목적으로 월드 와이드 컨소시엄(WWW Consorsium)이라는 단체가 표준화 작업을 진행하고 있는 페이지 기술 언어. 보통 XML이라는 약어로 불린다. HTML에서 사용되는 연결(link) 기능 등을 확장함과 동시에 표준 범용 문서 생성 언어(SGML) 인터넷용으로 최적화한 것으로 HTML SGML 장점을 모두 가지도록 규정하였다. 마이크로소프트사는 XML 바탕으로 푸시형(push type) 소프트웨어용의 정보 배포 형식(information distribution format) 채널 정의 형식(CDF) 규정하여, 인터넷 익스플로러 4.0에서 실현하고 있다. 


http://www.webopedia.com/DidYouKnow/Computer_Science/2005/web_services.asp



What is Web 2.0

Design Patterns and Business Models for the Next Generation of Software

by Tim O'Reilly

09/30/2005

http://www.oreillynet.com/lpt/a/6228



'Computation' 카테고리의 다른 글

Name Server 변경  (0) 2007.05.18
physics engine  (0) 2007.05.03
shiffman's ICM @NYU  (0) 2006.04.11
code search engine  (0) 2006.02.18
software term  (0) 2006.02.17
posted by maetel
2006. 2. 18. 23:33 Computation

'Computation' 카테고리의 다른 글

Name Server 변경  (0) 2007.05.18
physics engine  (0) 2007.05.03
shiffman's ICM @NYU  (0) 2006.04.11
Ajax and Web 2.0  (0) 2006.03.27
software term  (0) 2006.02.17
posted by maetel
2006. 2. 17. 22:39 Computation
applet graphics

Catmull-Rom Splines

P3D

OpenGL

OpenSoundControl


API = Application Program Interface
: a set of routines, protocols, and tools for building software applications.

A good API makes it easier to develop a program by providing all the building blocks. A programmer puts the blocks together. (more: 대부분의 운영환경(operating environment)

API 제공하는데, 동일한 API 사용하여 만들어진 프로그램들은 비슷한 interface 가지기 때문에 사용자가 프로그램을 배우기 쉽게 한다.)
예를 들어 Cocoa MacOS X 객체지향 API이다. (ref: http://www.osxdev.org/cocoa/)

사용자 삽입 이미지


software 부류로 나뉜다. systems software applications software.
시스템 소프트웨어는 컴퓨터(하드웨어) 직접 상호작용하는 가장 기본적인 낮은 단계의 프로그램으로 OS 포함한다. 어플리케이션 소프트웨어는 최종사용자(end-user) 사용하는 워드 프로세서, 그래픽 등이다. 어플리케이션 소프트웨어는 OS system utilities 없이는 돌아가지 않기 때문에 당연히 시스템 소프트 위에 얹혀 있는 것이다.


Open Source
:a program in which the source code is available to the general public for use and/or modification from its original design free of charge, i.e., open.

The distribution terms of open-source software must comply with the following criteria: (ref. OSI @ http://www.opensource.org/)

1. The license shall not require a royalty or other fee for sale.

2. The program must include source code, and must allow distribution in source code as well as compiled form.

3. The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.

4. The license must explicitly permit distribution of software built from modified source code.

5. The license must not discriminate against any person or group of persons.

6. The license must not restrict anyone from making use of the program in a specific field of endeavor.

7. The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.

8. The rights attached to the program must not depend on the program's being part of a particular software distribution.

9. The license must not insist that all other programs distributed on the same medium must be open-source software.

10. No provision of the license may be predicated on any individual technology or style of interface.


source code 원시부호  原始符號
: program instructions in their original form

program 짜는 programming language 형식을 source program이라 하는데 이것이 source code이다. C FORTRAN 같은 언어로 쓰여진 instructions으로 구성된다. 

: 인간이 판독 가능한 언어, 고급 언어나 어셈블러로 작성된 프로그램의 명령문. 
(object code
목적 부호와 대칭되는 용어이다. 목적 부호는 컴파일러, 어셈블러, 해석 프로그램에 의해 번역되어 기계가 판독 가능한 형의 명령문이다.)

cf. program 컴퓨터가 이해할 있는 machine language 번역해 주는 첫단계가 source code object code 번역하는 것인데, 보통 일을 compiler 하는 utility 한다. object code machine code 같을 때도 있지만, assembler라는 utility machine language 번역해 주어야 때도 있다. 


사용자 삽입 이미지


instruction (;INST) 명령어 命令語 
:  A basic command. The term instruction is often used to describe the most rudimentary programming commands. 

: 프로그램 작성 언어에서 컴퓨터에 대한 하나의 동작 스테이트먼트(action statement) 가리키는 용어. 명령어는 컴퓨터가 직접 실행 가능한 프로그램의 최소 단위이다.

보통 명령어는 프로그래머가 어셈블리 언어나 고수준 언어로 프로그램을 작성할 때에 스테이트먼트(statement) 형식으로 기술한 것을 나중에 컴파일러나 어셈블러에 의해 컴퓨터가 실행할 있는 기계어의 명령으로 번역한 것이다. 명령어는 일반적으로 ㉠하나의 연산 부호(operation code), ㉡하나의 연산 대상(operand), ㉢하나 또는 2개의 주소(address:기억 장소)라는 3가지 요소로 구성된다. 연산 대상인 ㉡에 지시된 ㉠의 연산을 수행하여 결과를 주소인 ㉢에 기억시켜라라는 형식으로 되어 있다.


object code 목적 부호 目的符號
:  The code produced by a compiler. 컴파일러 또는 어셈블러에 의해 생성되는 부호. 

어떤 프로그램의 원시 부호(source code)로부터 컴퓨터의 중앙 처리 장치(CPU) 직접 실행 가능한 기계어 부호(machine code) 번역되어 있거나 실행 가능한 기계어 부호로 만드는 적합한 형태로 되어 있는 . 오브젝트(object)라고도 한다.

cf. object code machine language 바꾸는 일은  assemblers, binders, linkers, loaders 등의 여러 종류의 프로그램이 한다.


program language > source code -(compiler)-> object code -(assembler)-> machine language



compile
: to transform a program written in a high-level programming language from source code into object code.
Programmers write programs in a form called source code. Source code must go through several steps before it becomes an executable program. The first step is to pass the source code through a compiler, which translates the high-level language instructions into object code. The final step in preducing an executable program -- after the compiler has produced object code -- is to pass the object code through a linker. The linker combines modules and gives real values to all symbolic addresses, thereby producing machine code.

1) 넓은 뜻으로는 원시 언어로 프로그램으로부터 그와 동등한 일을 하는 목적 언어로 프로그램을 생성하는 작업. 프리프로세싱, 매크로 처리, 어셈블, 좁은 뜻에서의 컴파일 모든 종류의 언어 처리 작업을 총칭한다.
2) 좁은 뜻으로는 포트란이나 파스칼과 같은 고수준 언어로 작성된 원시 프로그램을 어셈블리 언어나 기계어 등의 저수준 언어로 목적 프로그램으로 번역하는 . 

: 컴파일이란, 언어를 동등한 의미를 갖는 다른 언어로 바꾸는 의미합니다. 컴파일러에 의해 고급 언어를 저급 언어인 기계어로 번역하여 객체 모듈(Object Module) 만들고, 모듈을 링크, 로드하여 실행시키는 것입니다. 컴파일러 언어에는 FORTRAN, PASCAL, C/C++등이 있습니다. 

: 컴파일러 언어는 다단계의 구문 분석 코드 생성기를 이용하여 원시 프로그램을 기계어로 번역하는 반면, 인터프리터는 이러한 중간 과정 없이 코드를 읽어 내려가면서 곧바로 기계어로 번역합니다. 


cf. interpreter
: 인터프리터는 컴파일과는 다르게 중간과정 없이 원시 프로그램을 직접 저급 언어로 바꾸면서 동시에 실행하는 것입니다. 번역 과정에 있어, 고급 언어를 중간 코드까지만 번역해 그것을 소프트웨어 인터프리터로 실행하는 것입니다. , 기계어 프로그램이 만들어지는 것이 아니라, 중간 코드의 기능에 해당되는 서브루틴을 호출하면서 수행이 이루어지는 것입니다. 인터프리터 언어에는 LISP, PROLOG등이 있습니다. 다음 그림은 인터프리트 과정을 나타낸 것입니다. 컴파일러 수행과정과 비교해 , 무척 간단한 것을 보실 있을 것입니다.

인터프리터 언어의 장점 
- 
실행을 위해 완전한 기계어 번역을 기다리지 않고 필요시 실행되므로 대화식 프로그램에 좋습니다. 
- 
프로그램이 실행될 때까지 원시 원어 형태를 유지하므로 기억 장소가 많이 필요하지 않습니다.  

인터프리터 언어의 단점 
-
재실행 매번 원시 프로그램을 디코딩(Decoding)하고 처리해야 하므로 시간이 많이 걸립니다. 

사용자 삽입 이미지


Java
:  A high-level programming language developed by Sun Microsystems.  Java is an object-oriented language similar to C++, but simplified to eliminate language features that cause common programming errors.

자바는 기종이나 운영 체계와 무관한 응용 프로그램의 개발 도구로 각광받고 있다.

C++ > Java > Java source code(.java) -(Java compiler)-> byte code(.class) -(Java Virtual Machines: Java interpreter > just-in-time compiler; JIT > Java chip(micro processor)-> machine language 


Java applet
:  An applet is a small Internet-based program written in Java, a programming language for the Web, which can be downloaded by any computer

애플릿은 응용 프로그램(application) 작다는 의미의 접미사(let) 조합한 합성어이다.


JavaScript 
:  A scripting language developed by Netscape to enable Web authors to design interactive sites.

Although it shares many of the features and structures of the full Java language, it was developed independently. Javascript can interact with HTML source code, enabling Web authors to spice up their sites with dynamic content. JavaScript is endorsed by a number of software companies and is an open language that anyone can use without purchasing a license. It is supported by recent browsers from Netscape and Microsoft, though Internet Explorer supports only a subset, which Microsoft calls Jscript.

 미국의 넷스케이프 커뮤니케이션즈사(Netscape Communications) 개발한 스크립트 언어. 1996 2월에 발매한 월드 와이드 (WWW) 브라우저인 넷스케이프 내비게이터(Netscape Navigator) 2.0 실장하였다. 브라우저에서 실행하는 스크립트 언어를 기술한다. 언어 규격은 자바의 부분 집합(subset)으로 되어 있다. 하이퍼텍스트 생성 언어(HTML) 문서를 작성하는 수준의 사용자가 사용하는 것을 주안점으로 하여 자바의 언어 규격으로부터 변수의 (정수형이나 문자열형 ) 생략하거나 새로운 클래스 정의를 없도록 하였다. 스크립트는 HTML 문서 속에 직접 기술하며, ‘script’라는 꼬리표를 사용한다. 자바 스크립트와 같은 기능을 갖는 것으로서 마이크로소프트사에서는 ‘Virtual Basic Scripting Edition’ 개발하였다.


applet
:  A program designed to be executed from within another application

cf. With the growing popularity of OLE (object linking and embedding), applets are becoming more prevalent. A well-designed applet can be invoked from many different applications.



script
1) 소프트웨어에 실행시키는 처리 절차를 문자(텍스트) 기술한 . 일종의 프로그램이라고 있다. 일반적으로 응용 프로그램이나 유틸리티의 규칙과 구문(syntax) 써서 표현된 명령어들과 루프(loop), 이프 (if/then) 등의 단순한 제어 구조의 조합으로 구성된다. 응용 프로그램이나 운영 체계(OS)상에서 최종 사용자(end user) 제어할 있는 절차를 조합한 일련의 처리를 자동화하기 위하여 이용한다.

2) R.C. 섕크(R.C. Shank) 등이 개발한 개념 의존 관계 표현(conceptual dependancy expression) 기초로 하는 일종의 기억 구조. 인간이 일상적으로 행하고 있는 정형화된 행동을 사상(事象) 연쇄라는 형식으로 프레임(frame) 비슷하게 표현한 것이다. 프레임이 어떤 개념의 속성을 정적으로 기술하는 데이터 구조인 비해, 스크립트는 시간의 흐름에 따른 사상 예로서 기술하는 점이 다르다. 실제로 인간은 많은 스크립트를 알고 있으며, 상황에 따라서 적절한 스크립트를 상기하여 사상 예의 문맥을 이해하고 있다고 생각할 있다. 쇼핑의 스크립트 예를 들면 다음과 같은 것을 생각할 있다. ㉠어떤 사람이 상점에 들어간다. ㉡물품을 손으로 잡는다. ㉢물품의 소유권이 상점에서 그에게 이전된다. ㉣돈의 소유권이 그로부터 상점으로 이전된다. ㉤그가 상점을 떠난다. 




C++, C plus plus


Smalltalk


Perl = Practical Extraction and Report Language
Perl is a programming language developed by Larry Wall, especially designed for processing text. Because of its strong text processing abilities, Perl has become one of the most popular languages for writing CGI scripts. Perl is an interpretive language, which makes it easy to build and test simple programs.



object-oriented programming; OOP 객체 지향(客體指向) 프로그래밍
: A type of programming in which programmers define not only the data type of a data structure, but also the types of operations (functions) that can be applied to the data structure. 

In this way, the data structure becomes an object that includes both data and functions. In addition, programmers can create relationships between one object and another. For example, objects can inherit characteristics from other objects.
 To perform object-oriented programming, one needs an object-oriented programming language(OOPL). Java, C++ and Smalltalk are three of the more popular languages, and there are also object-oriented versions of Pascal.

객체 지향 프로그램에서는 실체(데이터) 동작(절차) 객체로서 정의하고 객체 간의 메시지 교환에 주안점을 정보 처리를 한다. 객체 지향은 과정을 중시하는 절차 중심 설계가 아니고, 실체(데이터) 중시하는 설계이다. 
공통의 성질을 갖는 객체는 객체 등급으로 정의하는데 같은 등급에 속하는 객체들은 그들이 받는 메시지에 대하여 비슷하게 반응한다. 객체 등급을 계층화할 있는데 하위 계층의 객체 등급은 상위 등급의 성질과 기능을 계승한다. 따라서 객체 지향은 시스템의 모듈화 캡슐화를 촉진하여 복잡화·거대화되는 소프트웨어를 사용하기 쉽고, 작성하기 쉬우며 유지 보수하기 쉬운 방향으로 재구축하는 새로운 기법으로 각광을 받고 있다.

http://en.wikipedia.org/wiki/Object-oriented_programming


* Processing is an extension of Java and supports many of the existing Java structures, but with a simplified syntax. The application runs locally and exports programs to Java applets, which may be viewed over the Internet.


syntax 구문 構文 ([논리]=syntactics)
: the spelling and grammar of a programming language. 

1) 문자들의 의미 해석을 하고 사용하는 방법과는 무관한 문자들 또는 문자 집합들 사이의 문제(ISO)
2) 언어에서의 식의 구조(ANSI)
3) 언어의 구조를 지배하는 규칙들(ANSI)

Computers are inflexible machines that understand what you type only if you type it in the exact form that the computer expects. The expected form is called the syntax.

Each program defines its own syntactical rules that control which words the computer understands, which combinations of words are meaningful, and what punctuation is necessary.

: 문법에는 프로그래밍 언어의 수식(Expressions), (Statement), 그리고 프로그램 단일체(unit) 형태 등이 포함됩니다.


semantics 의미


# 프로그래밍 언어는 매우 고집스러워서, 자신이 정의한 문법이 아니면 절대 받아들이지 않을 뿐더러, 컴퓨터는 어린 아이와 같아서 사용자가 문법 하나하나를 일일이 지적해주지 않으면 우왕좌왕 하게 됩니다


server-side
Occurring on the server side of a client-server system. For example, on the World Wide Web, CGI scripts are server-side applications because they run on the Web server. In contrast, JavaScript scripts are client-side because they are executed by your browser (the client). Java applets can be either server-side or client-side depending on which computer (the server or the client) executes them.


HTML


XML

MP3

Unicode


HTTP


FTP = File Transfer Protocol
Internet TCP/IP protocols 사용해서 데이터를 전송한다는 점에서 HTTP SMTP 같다.


TCP/IP = Transmission Control Protocol/Internet Protocol
: the suite of communication protocols used to connect hosts on the internet.



CGI = Common Gateway Interface


servlet
A small program that runs on a server. 
The term usually refers to a Java applet that runs within a Web server environment. This is analogous to a Java applet that runs within a Web browser environment.

Java servlets are becoming increasingly popular as an alternative to CGI programs. The biggest difference between the two is that a Java applet is persistent. This means that once it is started, it stays in memory and can fulfill multiple requests. In contrast, a CGI program disappears once it has fulfilled a request. The persistence of Java applets makes them faster because there's no wasted time in setting up and tearing down the process. 


debug
(v.) To find and remove errors (bugs) from a software program. Bugs occur in programs when a line of code or an instruction conflicts with other elements of the code.


ASP = Active Server Pages

: a specification for a dynamically created Web page with a .ASP extension that utilizes ActiveX scripting -- usually VB Script or Jscript code. When a browser requests an ASP, the Web server generates a page with HTML code and sends it back to the browser. So ASPs are similar to CGI scripts, but they enable Visual Basic programmers to work with familiar tools.

 미국 마이크로소프트사가 월드 와이드 (WWW) 애플리케이션을 실현하는 방법으로 추진하고 있는 기술. 서버상에서 VBScript(WWW 서버의 인터넷 정보 서버에서 실행 가능한 간이 언어자바 스크립트 등의 스크립트 언어나 ActiveX Control(ActiveX 기초로 소프트웨어 부품) 실행시켜 결과를 하이퍼텍스트 생성 언어(HTML) 동적(動的)으로 생성한다. 마이크로소프트사의 WWW 서버 소프트웨어 IIS 3.0 탑재되어 있는데, 컴파일이 필요 없으며 범용성이 높다는 등의 특징이 있다.


ASP = Application Service Provider



index.html -- html source for viewing the applet page

filename.jar -- compiled applet classes

filename.pde -- source code

pde = processing development environment(?)


JAR = Java Archive
: a file format used to bundle all components required by a Java applet. JAR files simplify the downloading of applets since all the components (.class files, images, sounds, etc) can be packaged into a single file. In addition, JAR supports data compression, which further decreased download times. By convention, JAR files end with a .jar extension.


wiki
: a collaborative Web site comprises the perpetual collective work of many authors. 

Similar to a blog in structure and logic, a wiki allows anyone to edit, delete or modify content that has been placed on the Web site using browser interface, including the work of previous authors. In contrast, a blog, typically authored by an individual, does not allow visitors to change the original posted material, only add comments to the original content.
The term wiki refers to either the Web site or the software used to create the site. 
Wiki wiki means "quick" in Hawaiian. The first wiki was created by Ward Cunnigham in 1995.

 


Cocoa
http://en.wikipedia.org/wiki/Cocoa_programming



ASX
 Short for ASF Streaming Redirector file, a Windows Media container file. ASX is an XML redirector file for ASF. ASX files are metafiles, i.e., they provide information about ASF media files, including descriptions of multimedia content. When a browser links to an ASX file, the ASX file in turn links to an ASF file on a server. 



Phython
: An interpreted, object-oriented programming language developed by Guido van Rossum. The name comes from one of van Rossum's favorite television shows, Monty Python's Flying Circus. Python is very portable since Python interpreters are available for most operating system platforms. Although Python is copyrighted, the source code is open source, and unlike GNU software, it can be commercially re-sold.


runtime  실행시간
 Occurring while a program is executing. For example, a runtime error is an error that occurs during program execution and a runtime library is a library of routines that are bound to the program during execution. In contrast, compile-time refers to events that occur while a program is being compiled.


EJB =  Enterprise JavaBeans
 Enterprise JavaBeans (EJB) is a Java API developed by Sun Microsystems that defines a component architecture for multi-tier client/server systems.
EJB systems allow developers to focus on the actual business architecture of the model, rather than worry about endless amounts of programming and coding needed to connect all the working parts. This task is left to EJB server vendors. Developers just design (or purchase) the needed EJB components and arrange them on the server.
Because EJB systems are written in Java, they are platform independent. Being object oriented, they can be implemented into existed systems with little or no recompiling and configuring. 


SCBCD = The Sun Certified Business Component Developer for the Java 2 Platform
http://www.sun.com/training/certification/java/java_busj23e.html


'Computation' 카테고리의 다른 글

Name Server 변경  (0) 2007.05.18
physics engine  (0) 2007.05.03
shiffman's ICM @NYU  (0) 2006.04.11
Ajax and Web 2.0  (0) 2006.03.27
code search engine  (0) 2006.02.18
posted by maetel