패치 화요일을 넘어 – 오늘은 Ada Lovelace Day입니다! PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

패치 화요일로 넘어가세요 – 오늘은 Ada Lovelace Day입니다!

매월 두 번째 화요일은 Microsoft의 보안 업데이트 정기 날로, 여전히 거의 모든 사람들에게 "패치 화요일"이라는 비공식 별명으로 알려져 있습니다.

하지만 XNUMX월 둘째주 화요일도 에이다 러브레이스 데이축하 러브레이스 백작부인 에이다.

Ada는 컴퓨팅뿐만 아니라 컴퓨터 과학의 진정한 개척자였으며 프로그래밍 언어인 Ada에 그녀의 이름을 주었습니다.

흥미롭게도 Ada 언어는 모든 부서가 다른 언어 또는 다른 언어 방언을 선호하는 것처럼 보이는 정부 코딩의 세계를 "debabelising"하는 것을 목표로 하는 미 국방부 프로젝트에서 등장하여 더 어렵고 더 비싸고 비용이 많이 듭니다. 함께 일할 수 있는 신뢰성이 떨어집니다.

Ada는 가독성을 높이고 일반적인 실수를 피하기 위한 수많은 구문 기능을 가지고 있었습니다. 로 시작하는 C의 주석과 달리 /* 그리고 다음까지 실행 */, 아마도 많은 줄 후에 Ada는 -- 주석이 실수로 의도한 것보다 더 많이 실행되는 일이 없도록 한 줄에 입력합니다. 모든 여러 줄 코드 블록을 구불구불한 대괄호({...}, 또한 ~으로 알려진 바지 멜빵), Ada는 각 종류의 다중 라인 블록에 대해 고유한 종료자를 가집니다. end record, end loopend if. 우리는 Ada Lovelace가 그녀의 이름을 딴 언어의 명확성에 박수를 보냈을 것이라고 생각하지만, Ada-the-언어는 결코 주목을 받지 못했고 C의 구불구불한 대괄호 구문이 큰 인기를 끌었습니다. 널리 사용. Squiggly 대괄호는 C, C++, C#, Go, Java, JavaScript, Perl, Rust 및 기타 많은 인기 있는 언어의 중요한 측면입니다.

에이다 러브레이스의 시대

에이다의 이름이 컴퓨터 과학의 시작과 얼마나 밀접하게 연관되어 있는지를 고려할 때, 우리가 현재 컴퓨터 또는 계산기로 인식하는 것이 존재하기 훨씬 이전인 XNUMX세기 전반기에 그녀가 살았다는 사실을 알게 되면 놀랄 것입니다. .

(Ada는 1852년 36세의 나이에 자궁암으로 사망했습니다.)

그러나 1800년대에는 현대적 의미의 컴퓨터가 존재하지 않았지만, 거의 했어요.

이것이 거의 일어난 방법입니다.

1800년대 초 Charles Babbage는 차이 엔진 적어도 이론적으로는 다음을 만족하는 X 값을 찾아 XNUMX차 다항식 방정식을 자동으로 풀 수 있습니다.

aX6 + bX5 +cX4 +dX3 +eX2 + fX + g = 0

영국 정부는 이러한 종류의 장치가 제곱근, 로그 및 삼각비와 같은 정확한 수학 표를 만드는 데 사용할 수 있기 때문에 관심을 보였습니다.

삼각 계산에 능한 기계라면 육지와 해상에서 포병의 정확도를 혁신적으로 바꿀 수 있는 포수 테이블과 같은 것을 계산하는 데에도 유용할 것입니다.

그러나 배비지에게는 두 가지 문제가 있었습니다.

첫째, 그는 디퍼런셜 엔진이 제대로 작동하도록 하는 데 필요한 엔지니어링 정밀도에 도달할 수 없었습니다. 그 이유는 백래시(작지만 누적된 부정확성으로 인해 메커니즘의 "엉성함"이 발생)가 이를 잠글 만큼 충분히 많은 연동 기어가 포함되었기 때문입니다.

둘째, 그는 디퍼런셜 엔진이 막다른 골목에 있다는 것을 깨달았을 때 관심을 잃은 것 같습니다. 현대적인 용어로 말하면 포켓 계산기로 생각할 수 있지만 태블릿 컴퓨터나 랩톱은 아닙니다.

그래서 Babbage는 그가 명명한 훨씬 더 복잡한 장치의 설계에 뛰어들었습니다. 분석 엔진, 이것은 일종의 다항식 방정식보다 훨씬 더 일반적인 과학적 문제를 해결할 수 있습니다.

아마도 돌이켜 보면 유감스럽게도 놀랍지 않을 것입니다. 정부는 Babbage의 더 발전된 프로젝트에 자금을 지원하는 데 별로 관심이 없었습니다.

그가 훨씬 더 간단한 방정식 풀이에 필요한 메커니즘을 구축하지 못했다는 점을 감안할 때 거대한 증기 동력의 범용 컴퓨터가 유용한 결과를 제공할 가능성이 얼마나 될까요?

유럽 ​​회의 회로

국제적 다국어 협력의 기이한 반전으로 Babbage는 자신의 분석 엔진을 홍보하는 강의를 하기 위해 이탈리아를 방문했습니다.

청중에는 Luigi Menabrea 대위라는 군사 엔지니어가 있었는데, 그는 Babbage와 협력하여 기계를 설명하는 1842년 논문을 제작하도록 영감을 받았습니다.

그는 이탈리아 사람이었지만 Menabrea는 프랑스어로 논문을 발표했습니다.

… 그리고 당시 Menabrea의 논문을 번역한 사람은 Ada Lovelace였습니다. 영어로.

Babbage의 촉구에 따라 Ada는 또한 일련의 번역가의 메모, 이것은 Menabrea의 원래 보고서보다 두 배 이상 길었을 뿐만 아니라 우리가 현재 범용 컴퓨터라고 부르는 것의 몇 가지 중요한 특성을 설명하는 더 통찰력 있는 것으로 밝혀졌습니다.

월터 아이작슨(Walter Isaacson)은 그의 탁월한 가독성 책에서 혁신가, 2014년에 출판된 Ada가 어떻게 "XNUMX년 후 컴퓨터가 마침내 탄생했을 때 역사적 반향을 일으킬 XNUMX가지 개념 탐구":

  • Ada는 Differential Engine과 달리 Analytical Engine이 진정한 범용 장치임을 인식하고, 한 가지 일을 하도록 프로그래밍할 수 있을 뿐만 아니라 완전히 다른 작업을 수행하도록 비교적 쉽게 다시 프로그래밍할 수 있기 때문입니다.

Ada 자신의 말에 따르면(이 시대는 과학 문학이 오늘날보다 훨씬 더 문학과 관련이 많았던 시대였습니다):

차이 엔진은 실제로 (이미 부분적으로 설명된 바와 같이) 추가하는 것 외에는 아무 것도 할 수 없습니다. 그리고 단순한 뺄셈, 곱셈, 나눗셈을 제외하고 다른 모든 과정은 현명한 수학적 배열과 기교에 의해 그것들을 일련의 덧셈으로 줄이는 것이 가능한 범위에서만 수행될 수 있습니다. 차이의 방법은 사실 덧셈의 방법입니다. 그리고 그것은 그 수단 내에 단순히 덧셈에 의해 얻을 수 있는 더 많은 결과를 포함하기 때문에 다른 어떤 수학적 원리보다 더하기 기계의 능력을 부여하기 위해 덧셈 기계를 구성하는 기초로 매우 적절하게 선택되었습니다. 가능한 가장 넓은 범위. 반대로 분석 엔진은 동일한 기능으로 더하기, 빼기, 곱하기 또는 나눌 수 있습니다. 다른 세 가지의 도움 없이 직접적으로 이 네 가지 작업을 각각 수행합니다. 이 한 가지 사실이 모든 것을 함축하고 있습니다. 예를 들어, 차이 엔진은 단순히 도표화할 수 있고 개발할 수 없는 반면 분석 엔진은 도표화하거나 개발할 수 있다는 점을 지적할 필요가 거의 없습니다.

  • Ada는 분석 엔진이 숫자로 인코딩하고 계산하는 데 국한되지 않는다는 것을 깨달았습니다. 그녀는 디지털 방식으로 수치 계산을 수행할 수 있는 능력을 기반으로 하지만 이러한 디지털 연산은 이론적으로 논리적 명제(오늘날 우리가 당연하게 여기는 것처럼)를 나타낼 수 있다고 설명했습니다. if ... then ... else ... end if 문), 음표 등.

에이다가 말했듯이:

[분석 엔진]은 숫자 이외의 다른 것들에 작용할 수 있으며, 상호 근본적인 관계가 추상적인 조작 과학의 것들에 의해 표현될 수 있고, 또한 조작 표기법 및 메커니즘의 작용에 대한 적응에 민감해야 하는 대상이 발견되었습니다. 엔진. 예를 들어, 화성과 음악 작곡의 과학에서 피치 소리의 근본적인 관계가 그러한 표현과 적응의 영향을 받기 쉽다고 가정하면, 엔진은 복잡성이나 정도에 관계없이 정교하고 과학적인 음악 작품을 구성할 수 있습니다. 분석 엔진은 추상적인 숫자를 해당 작업의 주제로 특별히 참조하여 구성된 작업 과학의 구현입니다.

  • Ada는 우리가 현재 프로그램이라고 부르는 부분을 재사용한다는 개념을 고안했습니다. 이런 의미에서 그녀는 재귀적 서브루틴(계산을 일련의 유사한 하위 계산으로 나눈 다음 스스로를 호출하여 솔루션을 단순화하는 함수)를 포함하여 서브루틴의 개념을 발명했다고 말할 수 있습니다.
  • Ada는 먼저 "기계가 생각할 수 있습니까?"라는 질문을 유용하게 다루었습니다. 이것은 그 이후로 우리를 걱정시켜온 문제입니다.

프랑켄슈타인 연결

에이다의 아버지(그녀는 그를 만난 적은 없지만)는 악명 높은 시인 바이런 경(Lord Byron)이었습니다. 그는 비오는 휴가를 스위스에서 보낸 기억에 남을 그의 문학 친구 퍼시(Percy)와 메리 셸리(Mary Shelley)와 함께 공포 이야기를 썼습니다.

이 친근한 글쓰기 대회에서 Byron과 Percy Shelley의 노력은 오늘날 완전히 잊혀졌지만 Mary Shelley의 획기적인 소설 프랑켄슈타인; 또는 현대 프로 메테우스 (1818년에 출판됨)은 오늘날까지 인기 있고 존경을 받고 있습니다.

Frankenstein 이야기는 오늘날 우리가 인공 지능이라고 부르는 것을 둘러싼 도덕적 딜레마를 탐구한 것으로 유명합니다. (프랑켄슈타인은 프로젝트에서 나온 AI가 아니라 실험을 수행한 과학자라는 사실을 잊지 마세요.)

그러나 Ada는 분석 엔진 또는 실제로 컴퓨터 일반에 대한 아버지의 친구의 디스토피아적인 우려를 공유하지 않는 것 같았습니다.

그녀는 그녀의 마지막 섹션에서 의견을 제시했습니다. 번역가의 메모즉,

Analytical Engine은 무엇이든 생성할 수 있는 가식을 가지고 있지 않습니다. 수행하도록 명령하는 방법을 알고 있는 모든 작업을 수행할 수 있습니다. 분석을 따를 수 있습니다. 그러나 그것은 어떤 분석적 관계나 진실을 예측할 수 있는 힘이 없습니다. 그 지역은 우리가 이미 알고 있는 것을 이용할 수 있도록 돕는 것입니다. 이것은 주로 집행 기능을 통해 주로 그리고 주로 영향을 미치는 것으로 계산됩니다. 그러나 그것은 다른 방식으로 과학 자체에 간접적이고 상호적인 영향을 미칠 가능성이 있습니다. 진리와 분석 공식을 배포하고 결합함으로써 엔진의 기계적 결합, 관계 및 과학에서 많은 주제의 본성이 필연적으로 새로운 조명에 던져질 수 있도록 가장 쉽고 빠르게 순응할 수 있기 때문입니다. 그리고 더 깊이 조사했습니다. 이것은 그러한 발명의 결정적으로 간접적이고 다소 추측적인 결과입니다.

100여 년 후 Alan Turing이 자신의 논문에서 인공 지능 문제를 다시 언급한 것으로 유명합니다. 컴퓨팅 기계 및 정보, 그리고 그의 소개 지금은 유명한 튜링 테스트, 그는 이것을 레이디 러브레이스의 반대.

무엇을해야 하는가?

다음에 다음과 같은 코드를 작성하는 자신을 발견하면…

   -- 펑키한 것: Ackermann 함수. -- 계산 가능하지만 원시 재귀는 아닙니다! -- (일반 for -- 루프로 작성할 수는 없지만 시간이 오래 걸리더라도 완료될 것이라고 확신할 수 있습니다.) local ack = function(m,n) if m == 0이면 n+1을 반환 end n == 0이면 ack(m-1,1)을 반환합니다. end ack(m-1,ack(m,n-1))을 반환합니다.

...이런 종류의 재귀 서브루틴은 모두 컴퓨터가 어떻게 생겼는지, 어떤 모양일지 알고 있었지만 그러한 장치보다 100년 앞서 살았던(그리고 슬프게도 아주 어린 나이에 사망한) 과학적 상상에서 시작되었음을 기억하십시오. 그녀가 실제로 해킹하기 위해 존재했습니다.

실제 컴퓨터에 대한 해킹은 한 가지이지만 가상 컴퓨터에 의도적으로 해킹하는 것은 오늘날 우리가 상상할 수 있는 일입니다.

행복한 에이다 러브레이스 데이!


타임 스탬프 :

더보기 노출 된 보안