“Bağlamsız dilbilgisi” ndeki “bağlam” ne demektir?


30

Bağlamsız Dilbilgisinin ne olduğu hakkında çevrimiçi birçok tanım var, ancak bulduğum hiçbir şey birincil sorunumu tatmin etmiyor:

Hangi bağlamda özgür?

Araştırmak için, "bağlam duyarlı dilbilgisi" kelimesini Googled'im ama yine de "bağlam" ın neyle ilgili olduğunu bulamadım.

Birisi lütfen contextbu isimlerde terimin ne anlama geldiğini açıklayabilir mi?


5
Wikipedia açıklamalarını oldukça iyi buluyorum - "Resmi bir dilbilgisi, ne kural dışı olursa olsun, üretim kuralları ne zaman uygulanabiliyorsa" bağlamsız "olarak kabul edilir. sağ tarafla değiştirilmelidir. " - "Düz İngilizce" olmak yeniden ifade edilip sadeleştirilebilir, ancak bunun özü bana oldukça açık görünüyor.
jkff

1
@jkff, açıklamayı iyi bulmanız harika, ancak burada "bağlam" ın gerçekten ne anlama geldiğini anlama konusunda hala başarısız oluyorum. Bağlamın olduğu ve bağlamın olmadığı bir örnek görmem gerekiyor. Bana göre, gördüğüm her gramerin bir bağlamı var gibi görünüyor
CodyBugstein

Tanımdan net değil mi?
Raphael

2
İronik olarak, kritik öneme sahip içerik bu tanımdan eksikti , ben de açıklamak için bir cümle ekledim.
reinierpost

2
Örnek: C ++ 11'de, overridekullanıldığı yere (yani içeriğine) bağlı olarak değişken bir ad veya anahtar kelime olabilir. Bir yöntem bildiriminden sonra kullanılırsa, bu bir anahtar kelimedir. Aksi takdirde değil. Bu, içeriğe duyarlı bir gramer örneğidir.
Thomas Eding

Yanıtlar:


37

Haklısın, her zaman bir anlamda bir bağlam var. Bir bağlamı anlamadan "bağlam" ın "bağlamsız" anlamında ne anlama geldiğini anlayabileceğinizi sanmıyorum.

Bir üretim, ikame kuraldır. Dilde dize oluşturmak için solda olanları sağda olanlarla değiştirebileceğinizi söylüyor:

A -> xy

Bu, soyut dizinin A, "x" karakteriyle ve ardından "y" karakteriyle değiştirilebileceği anlamına gelir. Daha karmaşık yapımlara da sahip olabilirsiniz:

zA -> xy

Bunun anlamı, soyut sekans A'yı izleyen "z" karakterinin "x" ve "y" karakterleriyle değiştirilebileceği anlamına gelir.

Bağlamsız bir üretim, sol tarafta yalnızca bir şeyin olduğu anlamına gelir. İlk örnek bağlam içermez çünkü A'dan önce veya sonra ne olursa olsun, "x" ve "y" ile değiştirilebilir. Bununla birlikte, ikinci örnekte, "z" karakterinin A'dan önce görünmesi gerekir ve sonra kombinasyon "x" ve "y" ile değiştirilebilir, bu nedenle bazı bağlamlar vardır.

Bağlamsız bir dilbilgisi o zaman sadece bağlamsız yapımlara sahip bir gramerdir.

İkinci örnek aslında sınırsız bir üretim örneğidir. Bağlam içermeyen ve "bağlam duyarlı" olarak adlandırılan sınırsız arasında başka bir kategori var. Bağlama duyarlı bir üretim örneği:

zA -> zxy

Aradaki fark, sol taraftaki A (ve sonrasında) öncesinde sağda korunmalıdır. Bu etkili bir şekilde sadece A'nın ikame edildiği anlamına gelir, ancak sadece uygun bağlamda ikame edilebilir.


2
Teşekkürler, bu çok büyük bir yardım! Asla bir gramer örneği görmedim, henüz sol tarafta gösterdiğiniz gibi birden fazla değişken var. Sanırım bu yüzden "bağlam" ın ne olduğunu göremedim. Teşekkür ederim
CodyBugstein

4
Belki daha basit bir bağlamsal örnek şöyle olabilir zA -> zxy: A hala xy ile değiştirilir, ancak yalnızca z'den sonra.
MSalters

Daha ayrıntılı olarak, bu cevap sınırsız bir dilbilgisi hakkında konuşur , oysa @MSalters bağlam duyarlı dilbilgisinin bağlamın anlamının daha iyi bir örneğini oluşturacağına işaret eder.

@ MSalters: İyi bir noktaya değindin. Cevabımı değiştirdim. Bu detayları açıklamalarıma daha karmaşık gelmeden eklemenin bir yolunu bulmakta zorlandım, bu yüzden sonunda yaptığım şey daha fazla ayrıntı eklemek oldu.
Vaughn Cato

9

kuralını göz önünde bulundurun ve bir cümle formunuz olduğunu O zaman A'ya indirgeme α ve ne olduğuna bağlı değildir. Bu şekilde, çevreleyen bağlama dayanmadığından bağlamsızdır.

Aβ
αAδ

Beta nedir? Bir terminal mi yoksa değişken mi? Ve "cümle formu" nu açıklayabilir misiniz? Bu daha fazla elde edilemeyeceği anlamına mı geliyor?
CodyBugstein,

Beta bir şey olabilir, A-> beta bir kuraldır. Sentetik form, başlangıç ​​sembolünüze gramer kurallarını kullanarak verdiğiniz sonucu bir sonuca dönüştüreceğimiz anlamına gelir. Bu sonuca manevi form denir. Her kuralı kullandıktan sonra yeni bir cümle formu alırız.
iLoveCamelCase

3
@Imray Gramerler ve bağlamsız gramerler için resmi tanımlara bakmanız gerekir . Resmi nesneleri anlamada kısayol yoktur .
Raphael

1
@Imray A cümlesel bir şekilde oluşan bir bant ve terminal olmayan türetilmiştir bu semboller aksiyomu (aynı zamanda başlangıç simgesi dilbilgisi uygulanmasıyla) kurallarına (ayrıca yapımları ). Bir cümle formu, terminal olmayan sembollerinden birine bir kural uygulanarak başka bir taneye türetilebilir. Hiçbir terminal kalmadıysa, cümle formu bir cümledir , yani gramer tarafından tanımlanan veya oluşturulan dilde bir dize veya kelimedir . Terminoloji, bir zamanlar biçimsel dil teorisinin bu kısmına ana katkı sağlayan dilbilimcilerden geliyor.
babou

Bir cümle formunun içinde hiçbir değişken olamayacağını düşündüm - sadece terminaller olması gerekiyor .
CodyBugstein
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.