프로그램 언어에서 보통 context라고 하면 어떤 의미를 가지나요

jsseal의 이미지

프로그램 언어에서 보통 context라고 하면 어떤 의미를 가지나요?
어떤 글을 읽다가 의문이 생겨서 질문합니다. 예문은 다음과 같습니다.
"Each event has its own execution 'context', which runs when the event is triggered. Each event has its own code image"
예문 상 code와 context는 분명히 뜻이 틀린 것 같은데...context의 의미가 모호하네요?

익명 사용자의 이미지

'context'는 own code image와 같은 뜻으로 생각하시면 될 듯합니다.

술한잔 한김에..

장 보드리야르의 "시뮬라크르와 시뮬라시옹"을 권해드리고 싶네요...
개체지향 분석, 설계 및 프로그래밍의 철학적인 배경 을 이해하는데
상당한 도움이 되는 것 같습니다.

뭐 읽기 귀찮으시면, 인터넷에서 검색이라도 하시면,
차후에 많은 도움이 되실 겁니다.

추상화와 구체화...

개체지향 입문서를 읽으면 가끔은 철학책을 읽고 있는듯한
착각이 들기도 하죠...

"abstract"
아 너무 마셨나보다...

자러가야쥐~

포스트 모더니즘은 종말을 고했다고 한지 10여년이 지났건만
프로그래머인 저는 아직도 포스트 모더니즘에서 헤어나지 못하네염...

예, 그렇습니다.

프로그래머 여러분들은 여전히 포스트 모더니즘속에 갖혀 지내시고 있습니다.

푸하하핳!

The Matrix has you....

ㅁㄴㅇㄹ의 이미지

뭐하는 사람이지.. 헛소리를 적으놓으셨네

ㅇㅇ의 이미지

원래 헛똑똑이들이 아무도 못알아들을 말로 지적 허영을 채우면서 설명을 했다고 착각을 하죠
쉽게 설명할 수 없으면 모르는 것과 같음

아이고의 이미지

필름 끊기셨겠는데

ㅇㅇ의 이미지

이분 댓글 년도를 보세요.. 2005년입니다.

물론 저게 뭔소린가 싶기도 하겠지만 저땐 저런 감수성이 은근 있었어요.

아마 context가 뭔지 찾으러 온 분들이 많을 것 같은데, 그냥 아무 말 하지 말고 넘어가십쇼..

그게 더 시간을 아끼는 방법입니다.

neu의 이미지

context는 프로그램이 메모리에 올라갔을 때, 실행되기 위해서 필수로 필요한 메모리영역, 레지스터의 값(CS, EIP 등등) 등의 리소스들을 총칭하는 것인데요.
윗 글에서는, 가령 윈도우에서 이벤트가 일어나면,
switch ( message )
{
WM_CHAR
char_pressed ();
break;
WM_LBUTTONDOWN
left_pressed ();
break;
...
}
실행되는 프로시져를 말하는 것 아닐까요?

최후의 최후까지 바짝 잡고 있어라!

익명 사용자의 이미지

쉽게 말하자면 어떤 루틴이 실행될 때 변수값들, 이전에 실행된 함수들의 내부상태 등을 말하는 것입니다. 동일한 루틴이 여러번 실행되더라도 컨텍스트에 따라 다른 결과가 나올 수 있는 것이죠.

ssehoony의 이미지

보통 컴에서 context 는 cpu 의 레지스터값들을 말합니다.
그래서 cpu 가 A 프로세스를 실행하다 타임쉐어링 정책에 의해 B 프로세스로 실행이 변경되어야 할 때 A용 cpu 의 레지스터 값을 특정 어딘가에 저장하고, B 프로세스 레지스터 값을 복원한 후 B의 코드를 실행하져. 이걸 context switch 라고 합니다. (사실 A context -> kernel context -> B context 이렇게 변하져)
그래서 시스템 call 이 왜 늦나? 라는 질문의 답으로 context switch 가 발생해서 라는 답변을 접하셨을 텐데요. 바로 이런 의미이죠.

나은성의 이미지

지금까지 제가 알고있던 위와같은 개념은 코드적 개념보다
화면에 직접 띄우는 디스플레이적 관점이라
컨텍스트는 주로 GUI 환경에서 불리워지며

윈도우의 Form 이나 dialog 박스 하나
또는 모바일의 Activity 한 면
정도로 생각해왔으며

따라서 모든 애플리케이션은 하나 또는 다수의 컨텍스트로 구성된다.
이렇게 생각해왔는데 다른가요?

익명 사용자의 이미지

context라는 말은 여러군데에서 사용됩니다.
질문에서 말한 execution context라는 개념은 보통 위에서 설명되었듯이 루틴의 실행(execution)에 영향을 줄 수 있는 register, call stack, memory 등의 상태를 말합니다.

context의 사전적 정의는 맥락, 전후사정이고,
어떤 것에 영향을 주는 외부적인 것들은 다 context라고 불릴 수 있습니다.

익명 사용자의 이미지

옳습니다

옳옳옳

wiseants의 이미지

모두 맞는 말씀들입니다.

좀 더 로우레벨로 들어 갈 경우

스택의 상태를 의미한다고 보면 위에서 말씀하신 얘기들이 맞아들어간다고 보면 됩니다.

컨텍스트 스위칭이란 스레드가 변경되는 경우에 사용하는 말인데

이때 스레드는 각기 다른 스택을 가지고 있기 때문에 스택이 변경된다는 의미를 가지고 있습니다.

또한 컨텍스트라는 말이 많이 쓰이는 경우는 이벤트핸들러나 콜백 프로시저와 같이

어느 스레드에서 프로시저를 호출하는지 런타임에 밝혀지는 경우

이 프로시저의 호출을 한 이전 스택 정보를 오브젝트로 줄 경우 컨텍스트라고 사용합니다.

ㄹㄹ의 이미지

지들 꼴리는대로 하더군요
서양 프로그래머 들끼리는 통하는게 있나봅니다
어원과 무언가 자신들의 프로그래머 문화에 합쳐져서 context라고 하면 아
~ 이거 무엇이다 라는 느낌이 오나봅니다
...
context 가 프로그램이 메모리에 올려져있을 때
메인이 되는 부분이라면 뭐 그렇다라고 할 수 있겟지만
그것을 객체의 이름으로써 남용을 한다고 해도
그 context 가 무엇을 가지고 있을지 어떻게 아냐고 ㅋㅋㅋㅋㅋㅋ
리액트라는 클라이언트 사이드 템플릿 엔진의 메인에 뭐가 있을지는
지구상의 모든 슈퍼컴퓨터를 마스터 AI로 돌린다고 해도
추측을 못할 겁니다 Facebook 엔지니어만 알겠죠

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.