'구문 분석'의 반대말은 무엇입니까? [닫은]


147

SQL 쿼리를 해당 쿼리의 추상 표현으로 구문 분석하는 parseQuery 함수가 있습니다.

쿼리의 추상 표현을 취하고 SQL 쿼리 문자열을 반환하는 함수를 작성하려고합니다.

두 번째 함수는 무엇을 호출해야합니까?


문자열 화? JSON 클래스는이 용어를 사용합니다. JSON.parse 와 반대 JSON.stringify ?
Wilt

답변:


200

나는 당신이 원하는 동사가 '구성'이라고 생각합니다.



16
1 년 후 다시 돌아와서 '어셈블'을 더 나은 반대라고 대답하거나 더 나은 기능 이름으로 '빌드'라고 대답합니다.
Joel Coehoorn

3
와우, 나는 이것에 대한 날짜를 확인하지 않았다 ... SO 질문 necromancy!
Daniel Schaffer

err .. 왜 ToString ()이 아닌가? Int32 등의 표준에 의해 설정된 표준 인 것 같습니다.
Joseph Kingry

1
질문이 언어에 구애받지 않는다는 것을 알기 전에 이전에 언급했습니다. ToString ()은 .NET에서 인정 된 표준 인 것 같습니다
Joseph

79

구문 분석 의 반대 는 직렬화입니다.


1
이것은 내 관점에서 가장 유용한 대답 일 수 있습니다.
JosephDoggie

8
'직렬화 해제'는 어떻습니까?
Den

32

컴파일러 용어에서 반대는 "비 분석"입니다. 특히 구문 분석은 토큰 스트림을 추상 구문 트리로 바꾸는 반면 구문 분석은 추상 구문 트리를 토큰 스트림으로 변환합니다.


4
같이 차를 uncrash합니다 ...
월터 Tross

31

짓다? 쿼리를 구문 분석 할 때 쿼리를 구성 부분 (토큰 등)으로 나누면 그 반대 부분이 문자열 쿼리로 구성됩니다.


21

기존 이름을 보완하기 위해 composeQuery 가 가장 좋습니다.

그러나 일반적인 경우 파싱의 반대는 ǝsɹɐd


8
나는 그것이 반대라고 생각합니다. 반대는 도피 할 것입니다
agusgambina

@agusgambina : 실제로,이 Bourne 쉘에 대해 생각 ... 의미가 있습니다 : 만약 ... 과학 경우 ... ESAC
까치

20

다음 중 하나를 사용합니다.

  • ToString ()
  • ToSQL ()
  • 세우다()

17

"직렬화"는 아마도 당신이 원하는 단어라고 생각합니다. 프로그램에서 내보내고 가져올 수있는 데이터의 텍스트 표현을 생성하는 것을 의미합니다.


1
직렬화는 이진 표현을 쉽게 의미 할 수 있습니다.
벤 호프 슈타인

1
진실. Parsimg는 외부 데이터의 페이딩에 관한 것이며 직렬화는 외부 용 데이터 생성에 관한 것입니다. 생성 된 형식은 텍스트 일 ​​필요는 없지만 종종 있습니다.
Kyle Cronin

분명히 내 iPod 키보드가 나아지고 있습니다. "파싱"과 "읽기"로되어 있습니다.
Kyle Cronin




10

나는 그것을 constructQuery라고 부를 것이다.


거의 완벽하게 들립니다. 이것이 일어날 것입니다. 그는 "말에 넣을 수있는"데이터를 수집 할 것입니다. 그는 쿼리를 "구축"합니다.
Tgwizman

10

가능하면 생성하거나 방출하십시오.


1
나는 동의한다. 섹션 9와 10의 rfc7159 (JSON)는 "Parser"와 "Generator"를 반대로 정의합니다.
mydoghasworms

10

그냥 물건을 추가하십시오.

반드시 구문 분석은 양방향 단어입니다.

요약을 쿼리로 구문 분석 할 수 있습니다.

쿼리를 요약으로 구문 분석 할 수 있습니다.

문제는 메소드의 후반부에 어떤 이름을 지정해야 하는가하는 것입니다.이 경우 쿼리를 작성하기 위해 요약을 구문 분석하고 있기 때문에 호출해야합니다 parseAbstract.

질문에 대답하기 위해 파싱은 반대가 아닙니다.





7

클래스 및 관련 연산자의 특성에 따라 작성, 생성, 생성, 렌더링, 압축, 축소, toSQL, toString


6

전통적인 컴파일러에는 파서와 코드 생성기의 두 부분이 있습니다.

"생성"이라고 부를 수 있습니다. 물론 컴파일러는 소스 코드를 작성하지 않기 때문에 약간 다릅니다. (프리 컴파일러가 아닌 한).




4

반음 낮추다?

구문 분석 된 쿼리 개체는 조건 계층 구조를 나타내며 1 차원 문자열로 다시 "평 평화"합니다.

그러나 객체에서 문자열로 갈 때 실제로 toString 또는 toSQL () 또는 이와 유사한 것을 사용하십시오. 또한 잘 디자인하고 올바른 앱을 사용하는 경우 나중에 이름을 바꾸고 작업 내용에 대한 주석에 내용을 붙일 수 있습니다.



4

나는 ToString ()으로 갈 것입니다. 일반적으로 체인 네스트 (클래스 1에서 클래스 2로 또는 그 반대로 전달 할 수있는 함수)

DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() );

Serialize ()는 좋은 선택처럼 보이지만 Deserialize ()에서는 이미 반대입니다.

특정 시나리오에서 다른 지적했듯이 ToSql ()이 또 다른 좋은 선택입니다.


4

렌더를 사용하겠습니다

> a = 'html': { 'head': {'title': 'My Page'}, 'body': { 'h1': 'Hello World', 'p': 'This is a Paragraph' } }

> b = render(a)

> console.log(b)

<html>
    <head>
        <title>My Page</title>
    </head>
    <body>
        <h1>Hello World</h1>
        <p>This is a Paragraph</p>
    </body>
</html>

parse ()와 반대되는 IMHO

> c = parse(b)

{ 'html': {
    'head': {
        'title': 'My Page'
    }
    'body': {
        'h1': 'Hello World',
        'p': 'This is a Paragraph'
    }
}


3

나는 '구성'에 투표했지만 당신이 마음에 들지 않으면 '빌드'도 제안합니다.



3

INHO 직렬화, 합성은 좋은 옵션입니다. 또한 parseQuery라는 이름으로 codeQuery를 사용합니다.


3

나는 일반적으로 "파싱"을 변환 방법으로 사용하므로 "convert"에 대한 반대 단어를 찾을 수 없습니다. "unconvert"는 일종의 변환 자체이므로 무언가를 "deconvert"할 수 없습니다.

이런 식으로 생각하면, 가장 좋은 해결책은 다른 주장을받는 두 가지 "구문 분석"방법을 사용하는 것입니다. 예 (자바) :

public class FooBarParser{

    public Foo parse(Bar bar);
    public Bar parse(Foo foo); 
}

2

출발하다

Deparse는 다음과 같이 구문 분석합니다.

  • 디 컴파일은 컴파일하는 것입니다
  • 분해는 작성하는 것입니다
  • deserialize는 직렬화하는 것입니다
  • degroovy는 groovy입니다 :);)

파싱 ​​/ 디 파싱은 구조의 변화가 아니라 변환입니다. 동등한 텍스트와 추상 구문 트리 형식을 정확하게 변환하여 모든 관계와 구조를 유지합니다.

"작성"은 구조의 변화를 의미하므로 옳지 않습니다. 별도의 독립 부품 (일반적으로 처음으로)과 결합하는 것이 좋습니다. "분해"가 독립적 인 부분으로 분할하는 것을 제안하는 것처럼. 형식뿐만 아니라 형식도 변경됩니다.

빠른 검색 쇼의 용어는 다음에서 사용됩니다.


빠른 Github에서 코드 검색 용어 "deparse는"더 광범위하게 사용이 없습니다 볼 것을 알 수 github.com/search?q=deparse - 나는 R 생태계에서 용어로 "deparse"생각합니다. -저에게는 파싱의 반대가 발생하고 있습니다. 에서 구문 분석 , 우리는 문장 입력으로 문법을 가지고 구문 구조 및 / 또는 문장의 의미 표현이 무엇인지 알고 싶어요. 세대 에서는 의미 표현과 문법을 입력으로 사용하고 의미 표현에 해당하는 문장을 찾고 싶습니다.
Jens A. Koch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.