Manlio Emiliano Terán Ramos Ing. Cibernética y Sistemas Computacionales. Paul Edward Castro Nava Lenguaje de Programación “MandroidPC” TERÁN MANLIO, CASTRO PAUL Resumen – se creó un nuevo lenguaje de programación orientado a Java Android SDK, con el fin de facilitar su acceso a la gente que no está familiarizada con este lenguaje. Gracias a esto, se reduce el tiempo de programación usando pocas líneas de código simplificando un trabajo más extenso. La finalidad del código está orientada a los video juegos para celulares (Gráficos), algunos ejemplos de gráficos que se implementaron fueron círculo, cuadrado y recta. INTRODUCCION El sistema operativo de celulares “Android” ha tenido un impacto muy fuerte en lo que es tecnología móvil. La gran parte del mercado móvil a nivel mundial lo tiene éste tipo de sistemas. Debido a lo anterior, desarrollamos un nuevo lenguaje de programación básico mucho más sencillo de usar que el SDK Android, al cual llamamos “MandroidPC”. El objetivo es inducir a la gente a éstos tipos de lenguajes improvisados para que se adentren al desarrollo de aplicaciones móviles y con esto lograr que en México haya más desarrolladores orientados a aplicaciones y Video Juegos móviles. Independientemente de la competencia que haya entre los lenguajes de programación móviles, IOS y Android. El objetivo no es preferir uno, sino todo lo contrario, es adentrar a la gente a estos lenguajes de programación. METODOLOGIA Se desarrolló en lenguaje de programación “C” un scanner que lea lo que se programe en el lenguaje de programación “MandroidPC” en un documento de texto, el cuál pasará por una técnica llamada “Parsing PDRC (Descendencia Recursiva por Código)”. La cual localizará todas las instrucciones que reconozca como lenguaje de programación “MandroidPC” y lo interpretará a Lenguaje Java Android del SDK con un documento de texto de salida llamado “java.txt”. A la hora de codificar: • Se implanta cada Producción como una rutina de código. • Se emplea el propio Stack del Lenguaje (Llamado de Subrutinas o Procedimientos). • Requiere BNF Extendido. • Utilización de las funciones (Expect, CurrentToken, CurrentTokenInFirst). Se implementaron Reglas PDRC:
Manlio Emiliano Terán Ramos Ing. Cibernética y Sistemas Computacionales. Paul Edward Castro Nava Al igual que las reglas, también se implementaron funciones ya diseñadas con anterioridad:
Manlio Emiliano Terán Ramos Ing. Cibernética y Sistemas Computacionales. Paul Edward Castro Nava InstruccionCirculo Se puede apreciar en la figura 1. Figura 1 InstruccionRecta Se puede apreciar en la figura 1.1. También se agregaron gramáticas del nuevo lenguaje de programación “MandroidPC” algunas de ellas son CÍRCULO, CUADRADO y RECTA. Se expresan de la siguiente manera: Figura 1.1
} Manlio Emiliano Terán Ramos Ing. Cibernética y Sistemas Computacionales. Paul Edward Castro Nava Dentro de la cual se necesitará implementar las instrucciones ya conocidas: InstruccionCuadrado Se puede apreciar en la figura 1.2. Figura 1.2 CONCEPTOS BASICOS Algunas de las instrucciones que implementamos en el lenguaje de programación “MandroidPC” son: CIRCULO(50:50:70 paint); RECTA(500:100:50:50:paint); CUADRADO(125:125:70:70:paint); Estas instrucciones tienen números dentro de ellas. Las cuales son el tamaño y las dimensiones de cada dibujo. Por último tenemos una variable llamada paint, que será la variable que incluye al objeto “Paint” de la clase “Canvas” de Java Android SDK. Para poder iniciar el lenguaje de programación “MandroidPC” se necesita la instrucción siguiente: INICIAR{ } INICIAR{ CIRCULO(50:50:70 paint); RECTA(500:100:50:50:paint); CUADRADO(125:125:70:70:paint); } La salida que generará esto estará dentro del documento de texto “java.txt” y quedará algo parecido a esto: import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.os.Bundle; import android.view.View; import android.view.Window; import android.view.WindowManager; public class MainActivity extends Activity { class RenderView extends View { Paint paint; public RenderView(Context context) { super(context); paint = new Paint(); } protected void onDraw(Canvas canvas) { paint.setColor(Color.RED); canvas.drawLine(50,50,50,50,paint); canvas.drawCircle(100,100,50,paint); canvas.drawCircle(50,50,70,paint); canvas.drawRect(250,250,100,100,paint); canvas.drawLine(500,100,50,50,paint); canvas.drawRect(125,125,70,70,paint); invalidate(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_ TITLE); getWindow().setFlags(WindowManager.LayoutPa rams.FLAG_FULLSCREEN,
} } 1 2 3 Manlio Emiliano Terán Ramos Paul Edward Castro Nava WindowManager.LayoutParams.FLAG_FULLSC REEN); setContentView(new RenderView(this)); El cuál es el lenguaje de programación de Java Android SDK y al correrlo se obtienen las tres Ing. Cibernética y Sistemas Computacionales. programación “MandroidPC”, logrando hacer con 5 líneas de código lo mismo que las mostradas con anterioridad. Con todo esto se puede tener aplicaciones y video juegos móviles de manera más sencilla, logrando que las personas tengan más acceso a éste sistema operativo. figuras. REFERENCIAS http://infomundo.org/informatica/android -ya-es-la-referencia-en-el-mercado-pese- a-la-llegada-de-ios-8/ http://www.dirinfo.unsl.edu.ar/compi/teo rias/PDR.pdf Apuntes de la materia Compiladores y Traductores, Jorge Kashiwamoto. Los “imports” de la parte superior del programa generado son llamados paquetes que en java es un contenedor de clases que permite agrupar las distintas partes de un programa cuya funcionalidad tienen elementos comunes. RESULTADOS Se puede apreciar en la figura 1.3. Figura 1.3 CONCLUSIONES Como pudimos ver el resultado, el lenguaje de programación de Java Android SDK se simplifico de manera drástica gracias al lenguaje de