2010-11-25 3 views
1

필자는 응용 프로그램 사용자에게 시각적 인 인터페이스를 제공하여 데이터 흐름과 같은 스타일로 사용자 정의 코드/기능을 입력 할 수있는 가능성을 모색 중입니다 (Yahoo Pipes).비주얼 프로그래밍 언어는 어떻게 작동합니까?

예를 들어 파이프에서 비주얼 편집기가 어떻게 작동하는지 궁금합니다. 비주얼 코드를 데이터베이스에 저장할 텍스트 언어로 컴파일 할 수 있습니까? 또는 개별 블록, 커넥터, 변수 등을 모두 데이터베이스에 저장할 수 있습니까?

Microsoft의 Visual Studio와 같은 시각적 프로그래밍 언어 IDE는 어떤가요? 코드가 비주얼 인터페이스에서 직접 해석됩니까?

답변

2

화면에 보이는 것은 빙산의 상단입니다. 구성 요소는 공개 인터페이스가있는 크기가 다양하지 않거나 어렵거나 간단한 프로그램입니다. 데이터 흐름 프로그래밍에서 이러한 인터페이스는 생산자와 소비자 (출력 및 입력)이므로 입력 및 출력 측면에 핀이있는 블랙 박스로 시각화 할 수 있습니다. 핀 (포트)을 연결할 때 한 프로그램의 출력을 다른 프로그램의 입력으로이 끕니다. 구성 요소는 사전 컴파일되어 실행 준비가 된 상태에서 연결하여 소비자 (입력)와 생산자 (출력)를 설정했습니다. 그것이 그들이 블랙 박스 인 이유입니다. 그것들은 변경할 수없는 프로그램입니다 (소스 코드가있는 경우 제외).

구성 요소는 다른 구성 요소와 연결되도록 설계되었습니다. 어떤 경우에는 구성 요소가 독립 실행 형으로 실행될 수 있지만 일반적으로 전체 작업을 수행하려면 연결해야합니다. - 소스 : 출력을 생성합니다 (추가 처리 또는 표시가 필요함). - 프로세스 : 입력을 수신하고 처리 한 다음 추가 처리 또는 표시로 전달합니다. - sink : 입력을 수신합니다. 표시하거나 저장하고 다른 사람에게 전달하지 않습니다.

일반적인 데이터 흐름 구성에는 원본 프로세스 프로세스 싱크 체인이 포함되어 있습니다. 프로세스 유형 구성 요소의 수는 0 일 수 있습니다. 원본에 의해 생성 된 데이터는 싱크 구성 요소에 의해 표시됩니다. 이전에 하나의 프로그램이었던 것처럼 세 가지 구성 요소가 있다고 생각할 수 있지만 고장났습니다. 이제 다시 조립할 수 있습니다.

가장 잘 알려진 데이터 흐름 시스템 중 하나는 유닉스 쉘입니다. CLI 명령은 구성 요소입니다. 그들은 미리 컴파일되어 있습니다, 당신은 단지 "|" 그들 사이에. 또한 대부분의 "소스"명령은 ls과 같이 독립 실행 형으로 사용할 수 있으며 대부분의 "싱크"구성 요소는 인수로 정의 된 파일에서 입력을 수신 할 수 있습니다. more.

+0

위대한 설명. 따라서 Yahoo! Pipes와 같은 시스템 (PHP에서 말하자면)에서 이러한 소스, 프로세스 및 싱크는 호출되고 실행되는 실제 PHP 클래스의 시각적 표현 일 수 있습니까? 그게 좋은 방법일까요? 또는 사용자가이 데이터 흐름을 편집 한 후에 컴파일 및 저장을 수행 한 다음이 클래스를 가져 와서 실행하면 더 좋은 방법일까요? –

+0

Sry, Yahoo Pipes에 익숙하지 않습니다. 필자는 C++에서 데이터 흐름 프로그램 (구성 요소 정의 및 연결 목록)을 C++로 컴파일 한 다음 .o로 컴파일 한 다음 미리 컴파일 된 구성 요소 및 디스패처 .o 파일과 함께 연결하는 C++로 데이터 흐름 시스템을 작성했습니다. 또는 구성 요소가 실행 가능 파일이고 연결이 파일 설명자 (stdin, stdout) 인 Unix 쉘을 참조하십시오. 데이터 흐름은 단지 방법 일 뿐이며 어떤 기술도 정의하지 않습니다. 스프레드 시트는 DF 시스템이기도합니다. 구성 요소는 셀의 수식이며, 연결은 참조입니다.이 경우 원본 질문은 적용 할 수 없습니다. – ern0

관련 문제