스크립트 제작에 대해서..

oprsystem의 이미지

안녕하세요..

UI 를 제작할일이 있는데 제가 워낙 디쟈인에 꽝이라서
UI 와 타겟 프로그램을 분리 할려고 합니다.

타겟 프로그램이 SCRIPT를 해석하는 능력이 있다면
UI 디쟈인을 스크립트화 해서 타겟 프로그램에 돌아 가면
참 편리할꺼 같습니다.

이러한 이유로 타겟 프로그램에서 돌아가는 스크립트 엔진을
만들어 볼려고 합니다.

그런데 제가 LEX/YACC 쪽으로 좀 테스트 해 봤는데..
제 수준에는 잘 안되는거 같습니다.
그리고 임베디드 환경하고는 좀 안 맞는거 같기도 하고요.

그래서 자체적으로 제작할려고 합니다.
문법수준은 if 문 이 들어가면 편할꺼 같은 생각이 드는데
어찌 구현을 해야 좋을지 막상 감이 안옵니다.
while 문이나 for 문은 생각도 안하고 있습니다.
단순한 판단문 정도...

혹시 아이디어 있으시면 답변 부탁 드립니다.

voider의 이미지

저또한 가끔씩 임베디드 일을 하구 있구요
이러한 생각을 예전부터 품어 왔습니다.
한번은 QT를 사용했고 다른한번은 간단한 UI 라서 프레임버퍼에 직접 그렸습니다 (QT가 무지 짜증 났거든요.. UI 프로그래머 분이 좀 무식하게 QT디자이너로 만드셔서.... ㅠ.ㅠ)
지금은 GTK 로 하고 있네요.
글라이더로 만들고 있는데 상당히 괜찮더군요...
그런데 피드백이 너무 느린것 같다는 느낌이...
개발이 정지되버린것처럼 보입니다.

제가 지금 구상하고 있는건...
모질라 와 XUL입니다.

그런데 지금 일이 너무 많아서 시작하지도 못하고 있네요...

추후에 다른 좋은 아이디어 있으시면 같이 해도 될까요?

-- 아쉬운 하루 되세요 --

oprsystem의 이미지

답변 감사합니다.

당연히 좋지요... 저와 비슷한 고민을 하신분이 계서서 :D 즐겁습니다.

하지만 저는 OS 없이 할려고 합니다.

생각되는 방법으로는 이미지 스트림을 인덱싱 해서 쓸려고 합니다.

그리고 이미지스트림의 액션은 스크립트로 명령을 주고 받을려고 합니다.

그리고 실행되야 하는 함수들은 2차원 배열 형태로 함수이름(문자열) 과 함수포인터 형태로 매칭을 시켜 놓으면 가능하지 않을까 생각하고 있습니다.

단순한 문자열 반응은 그리 어렵지 않은데.. 판단문이 문제가 되는군요
아무래도 판단문이 빠지면 제가 직접 UI에 관여를 해야 하니까요..

황혼보다 어두운 자여
내 몸에 흐르는 피보다 더 붉은 자여
시간의 흐름 속에 파뭍힌 위대한 그대의 이름을 걸고 나 여기서 어둠에 맹세하노라
우리 앞을 가로막고 있는 모든 어리석은 자 들에게
나와 그대의 힘을
위대한 파멸의 힘을 보여줄 것을

cbycby의 이미지

같은 일을 하시는 분을 만나니 반갑네요.

저같은경우 QT로 작업하면서 UI부분을 다시 컴파일 하지 않고도 동적으로 바꿀 수 있게 하기위해서
그냥 간단히 Resource 파일만 만들고
이를 프로그램내에서 parsing하는 구조로 설계 했습니다.

Resource 파일은 항상 파일에서 불러와서 동적으로 재 구성할 수 있도록 하구요...

저역시 for나 if 정도의 간단한 문법을 embedding하고 싶었으나
처음 간단하게 생각한게 문법적 욕심이 자꾸 늘어나서 감당이 안될까봐.

resource 파일생성을 php script로 만들어서 생성토록 했습니다.

http://www.korone.net QT 커뮤니티 사이트

voider의 이미지

제가 모질라를 욕심내는 이유는 여러가지가 있습니다

첫째 넷트워킹 이것은 앞으로의 임베디드 쪽의 대세가 되지 않을까 싶습니다. 현재 Gigbee 쪽으로도 공부하고 있는데 넷트웍 형태가 어떤 식으로 되던지 네트워킹은 중요한 이슈가 되겠죠. 이것과 모질라와 직접접인 상관이 없지만서도 ....

둘째 누구나 알고 있고 익숙한 UI 바로 HTML 입니다.

셋째 HTML 의 UI는 터치패널과 같은 평면 입력장치에 찰떡 궁합이라는점입니다.

넷째 UI디자이너의 구현과 독립적으로 프로그램 할수있습니다.
또한 UI 디자이너가 프로그램에 대해 알지 못해도 상관없습니다.

-- 아쉬운 하루 되세요 --

dopesoul의 이미지

Zigbee 좋죠.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.