나는 모든 답을 자세히 읽을 시간이 없었지만 나는 즐거웠다.
60 년대와 70 년대 초반에도 비슷한 논쟁이있었습니다 (컴퓨터 과학 역사는 종종 반복됩니다) : 프로그래머가 수동으로 생산 한 어셈블리 코드와 같이 기계어 코드만큼 효율적인 코드를 생성하기 위해 고급 언어를 컴파일 할 수 있습니까? 누구나 프로그래머가 어떤 프로그램보다 훨씬 똑똑하다는 것을 알고 있으며 매우 현명한 최적화 (실제로 대부분은 구멍 구멍 최적화라고 함)를 생각해 낼 수 있습니다. 이것은 물론 아이러니하다.
코드 확장이라는 개념도있었습니다. 컴파일러가 생성 한 코드 크기와 우수한 프로그래머가 생성 한 동일한 프로그램의 코드 크기 비율 (이러한 :-)이 너무 많은 것처럼 보입니다. 물론이 비율은 항상 1보다 큽니다. 당시의 언어는 지식인의 경우 Cobol and Fortran 4 또는 Algol 60이었습니다. 나는 Lisp이 고려되지 않았다고 생각합니다.
누군가가 때로는 1의 확장 비율을 얻을 수있는 컴파일러를 만들었다는 소문이있었습니다 ... 컴파일 된 코드가 수작업 코드보다 훨씬 낫다는 규칙이되었습니다 (더 신뢰할 수 있음). 사람들은 당시의 코드 크기 (작은 메모리)에 대해 걱정했지만 속도 나 에너지 소비에 대해서도 마찬가지입니다. 나는 그 이유에 들어 가지 않을 것이다.
이상한 기능, 언어의 동적 기능은 중요하지 않습니다. 중요한 것은 사용 여부, 사용 여부입니다. 어떤 단위 (코드 크기, 속도, 에너지 등)의 성능은 종종 프로그램의 아주 작은 부분에 의존합니다. 따라서 표현력을 제공하는 시설이 실제로 방해가되지 않을 가능성이 높습니다. 우수한 프로그래밍 실습을 통해 고급 시설은 훈련 된 방식으로 만 사용되어 새로운 구조를 상상할 수 있습니다.
언어에 정적 타이핑이 없다는 사실은 해당 언어로 작성된 프로그램이 정적으로 타이핑되지 않았 음을 의미하지 않습니다. 반면에 프로그램이 사용하는 형식 시스템이 형식 검사기가 존재하기에 아직 충분히 형식화되지 않았을 수 있습니다.
토론에서 최악의 사례 분석 ( "중지 문제", PERL 구문 분석)에 대한 몇 가지 참조가있었습니다. 그러나 최악의 경우 분석은 대부분 관련이 없습니다. 중요한 것은 대부분의 경우 또는 유용한 경우에 발생하지만 ... 정의되거나 이해되거나 경험 된 것입니다. 여기에 프로그램 최적화와 직접 관련된 또 다른 이야기가 있습니다. 그것은 텍사스의 한 주요 대학에서 박사 과정 학생과 그의 고문 (나중에 국가 아카데미에서 선출 된) 사이에서 오래 전에 일어났습니다. 내가 기억 하듯이, 학생은 고문이 다루기 어려운 것으로 나타 났던 분석 / 최적화 문제를 연구하는 데 열중했다. 곧 그들은 더 이상 말을하지 않았다. 그러나 학생은 옳았습니다. 문제는 대부분의 실제 사례에서 충분히 다루기 쉬워서 그가 작성한 논문이 참조 작업이되었습니다.
그리고 Perl parsing is not
computable
그 문장의 의미가 무엇이든 ML에 대해 비슷한 문제가 있다는 진술에 대해 더 언급하기 위해 ML은 비슷한 형식의 언어입니다.Type
checking complexity in ML is a double exponential in the lenght of the
program.
그것은 최악의 경우에 매우 정확하고 공식적인 결과입니다. Afaik, ML 사용자는 여전히 유형 검사기를 폭발시킬 실용적인 프로그램을 기다리고 있습니다.
많은 경우에 이전과 마찬가지로 인간의 시간과 역량은 컴퓨팅 능력보다 부족합니다.
미래의 실제 문제는 여전히 사용되는 모든 레거시 소프트웨어를 다시 작성할 필요없이 새로운 지식과 새로운 프로그래밍 형식을 통합하기 위해 언어를 발전시키는 것입니다.
수학을 살펴보면 매우 큰 지식이 있습니다. 그것을 표현하는 데 사용 된 언어, 표기법 및 개념은 수세기에 걸쳐 진화 해 왔습니다. 새로운 개념으로 오래된 정리를 작성하는 것은 쉽습니다. 우리는 주요 증거를 적용하지만 많은 결과를 귀찮게하지 않습니다.
그러나 프로그래밍의 경우 모든 증거를 처음부터 다시 작성해야 할 수도 있습니다 (프로그램은 증거 임). 실제로 필요한 것은 매우 높은 수준의 개발 가능한 프로그래밍 언어 일 수 있습니다. 최적화 디자이너는 기꺼이 따라갈 것입니다.