ใช่และไม่.
มีสองแง่มุมต่าง ๆ ในไวยากรณ์
- การอ่าน
- expressivity
- parsability
ความสามารถในการอ่านได้ถูกกล่าวถึงแล้ว
การแสดงออกเป็นกรณีที่น่าสนใจ ฉันจะใช้ฟังก์ชั่นการส่งผ่านเป็นตัวอย่างเพราะมันเป็นจุดเบี่ยงเบนของความเจ็บปวดความหมาย / วากยสัมพันธ์
ลองยกตัวอย่าง C ++ ฉันสามารถสร้างฟังก์ชั่นลำดับแรกหลังจากแบบนี้:
class funcClass
{
int operator()(int);
}
funcClass fun;
void run_func(funcClass fun)
{
fun();
}
สำนวนนี้โดยทั่วไปมักใช้ในองค์ประกอบของโปรแกรมสเตฟอฟ
ในทางกลับกันฉันสามารถเลียนแบบมันด้วย Common LISP กับสิ่งนี้ :
(defun myfunc() )
(defun run_func(fun)
(fun))
หรือใน Perl -
sub myfunc
{
}
sub run_func
{
my $func = shift;
$func->(); #syntax may be a little off.
}
หรือใน Python -
def myfunc():
pass
def run_func(f):
f()
สิ่งเหล่านี้ล้วนมีเนื้อหาความหมายเหมือนกันแม้ว่าตัวอย่าง C ++ จะมีเมทาดาทาบางประเภท ภาษาใดที่แสดงความคิดว่าการส่งผ่านฟังก์ชั่นที่มีลำดับสูงที่สุดดีที่สุด? เสียงกระเพื่อมสามัญแทบจะทำให้รูปแบบการสร้างประโยค C ++ ต้องการคลาสที่จะสร้างเพียงเพื่อ 'พกพา' ฟังก์ชัน Perl ค่อนข้างตรงไปตรงมาเกี่ยวกับการสร้างความแตกต่างในระดับหนึ่ง Python ก็เช่นกัน
วิธีใดที่เหมาะสมกับโดเมนปัญหามากที่สุด วิธีใดที่ดีที่สุดที่สามารถแสดงความคิดเห็นในหัวของคุณด้วย 'อิมพีแดนซ์ไม่ตรงกัน' ที่น้อยที่สุด?
ความสามารถในการวิเคราะห์คือ - ในใจ - เป็นเรื่องใหญ่ โดยเฉพาะอย่างยิ่งฉันอ้างถึงความสามารถของ IDE ในการแยกวิเคราะห์และสับภาษาโดยไม่มีข้อผิดพลาด การฟอร์แมตใหม่มีประโยชน์ ภาษาที่คั่นด้วยโทเค็นมีแนวโน้มที่จะแยกวิเคราะห์ได้ดี - ruby / c / pascal ฯลฯ
พิจารณาว่า - ระบบที่สำคัญทุกประเภทถูกสร้างขึ้นด้วยภาษาที่จริงจังทุกภาษาเพื่อแก้ปัญหาในโลกแห่งความจริง แม้ว่าไวยากรณ์จะเป็นอุปสรรคในการแสดงบางสิ่ง แต่ก็เป็นสิ่งกีดขวางที่สามารถแก้ไขได้ ทัวริงเทียบเท่าและทั้งหมดที่