. . . . 예를 들어서. class.txt class CTest { int m_nTest; void Fn_Test(); } 이와같이 class.txt 라는 파일이 있을경우 이 파일을 읽어서 C나 C++에서 클래스처럼를 사용하려고 합니다.
파서는 만들겠는데 클래스자체를 동적으로 만드는 방법은 모르겠습니다. 어떻게 해야할지 알고 싶습니다.
이걸 보면 원하는 것을 할 수 있을 것입니다.
http://wiki.kldp.org/wiki.php/DocbookSgml/C%2B%2B-dlopen
제목만 보고 답글 달았는데 본문을 보니 이 얘기가 아닌듯도 하군요. ^^
진짜 동적생성이네요..
컴파일러를 불러서 소스를 라이브러리로 만들고,
이 라이브러리를 "동적으로" 불러오면 되려나요..
그런데 이런게 과연 필요할지가 의문이네요..
핵심 기능들은 컴포넌트화 한 다음, 해당 기능을 사용하는 스크립트로 짜고 메인 프로그램은 스크립트에 대한 파서를 구현하는게 더 현실적일 듯 하네요.
일단 Lisp 계열 언어들이 이런 면으로야 워낙 잘 알려져 있습니다. 문법이 단순해서 텍스트로 된 코드를 쉽게 불러들일 수 있죠. 언어 자체에서 텍스트를 데이타 구조로, 그 데이타 구조를 프로그램 코드로 동적으로 변환하는 것을 기본적으로 지원합니다.
Erlang의 경우도 특히 이런 면을 염두해 두고 만들어진 언어입니다. 실행 중인 상태에서 프로그램을 멈추지 않고 코드를 재정의해서 불러들이는 것도 가능하죠.
Java의 경우도 class 자체를 동적으로 불러들이거나 생성할 수 있습니다. 한번 불러들인 클래스의 정의를 바꿔치기 할 수 있는지는 모르겠지만요.
C/C++의 경우는 보통의 구현이라면 클래스 정보를 실행 전에 알아야 하기 때문에 어렵죠.
그러한 기능을 원하신다면 C++보다는 Common Lisp Object System (CLOS)를 쓰시는 게 어떨까요?
임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
1. 데이터형별로 텍스트 로딩 2. 데이터형별로 파싱 3. 데이터형은 각 카테고리별로 관리
한마디로.... 클래스는 아니고... 데이터만 정리해서 사용하는 방식입니다. 더 좋은 방법 아시는분 댓글' ㅇ_ㅇ'' 주세요. 답변해주신 병철씨' 땡큐 ㅋ_ㅋ''''
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
---------------------------------------------------------------------------- 젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다. 정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
이걸 보면 원하는
이걸 보면 원하는 것을 할 수 있을 것입니다.
http://wiki.kldp.org/wiki.php/DocbookSgml/C%2B%2B-dlopen
제목만 보고 답글
제목만 보고 답글 달았는데 본문을 보니 이 얘기가 아닌듯도 하군요. ^^
진짜
진짜 동적생성이네요..
컴파일러를 불러서 소스를 라이브러리로 만들고,
이 라이브러리를 "동적으로" 불러오면 되려나요..
그런데 이런게 과연 필요할지가 의문이네요..
핵심 기능들은
핵심 기능들은 컴포넌트화 한 다음, 해당 기능을 사용하는 스크립트로 짜고 메인 프로그램은 스크립트에 대한 파서를 구현하는게 더 현실적일 듯 하네요.
프로그램을 동적으로 생성하거나 불러들이는 것을 지원하는 언어들이 있습니다
일단 Lisp 계열 언어들이 이런 면으로야 워낙 잘 알려져 있습니다.
문법이 단순해서 텍스트로 된 코드를 쉽게 불러들일 수 있죠.
언어 자체에서 텍스트를 데이타 구조로, 그 데이타 구조를 프로그램 코드로
동적으로 변환하는 것을 기본적으로 지원합니다.
Erlang의 경우도 특히 이런 면을 염두해 두고 만들어진 언어입니다.
실행 중인 상태에서 프로그램을 멈추지 않고 코드를 재정의해서 불러들이는 것도 가능하죠.
Java의 경우도 class 자체를 동적으로 불러들이거나 생성할 수 있습니다.
한번 불러들인 클래스의 정의를 바꿔치기 할 수 있는지는 모르겠지만요.
C/C++의 경우는 보통의 구현이라면 클래스 정보를 실행 전에 알아야 하기 때문에 어렵죠.
그러한 기능을 원하신다면 C++보다는 Common Lisp Object System (CLOS)를 쓰시는 게 어떨까요?
[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
이런방법이 있더군요.
1. 데이터형별로 텍스트 로딩
2. 데이터형별로 파싱
3. 데이터형은 각 카테고리별로 관리
한마디로.... 클래스는 아니고... 데이터만 정리해서 사용하는 방식입니다.
더 좋은 방법 아시는분 댓글' ㅇ_ㅇ'' 주세요.
답변해주신 병철씨' 땡큐 ㅋ_ㅋ''''
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기